您的位置:首页 > 其它

九度oj 题目1020:最小长方形【ZJU2007考研机试题1】

2014-03-02 16:42 239 查看
题目1020:最小长方形

时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:4286

解决:2001

题目描述:
给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所有点框在内。长方形框的边分别平行于x和y坐标轴,点落在边上也算是被框在内。

输入:

测试输入包含若干测试用例,每个测试用例由一系列坐标组成,每对坐标占一行,其中|x|和|y|小于 231;一对0 坐标标志着一个测试用例的结束。注意(0, 0)不作为任何一个测试用例里面的点。一个没有点的测试用例标志着整个输入的结束。

输出:

对每个测试用例,在1行内输出2对整数,其间用一个空格隔开。第1对整数是长方形框左下角的坐标,第2对整数是长方形框右上角的坐标。

样例输入:
12 56
23 56
13 10
0 0
12 34
0 0
0 0


样例输出:
12 10 23 56
12 34 12 34


来源:2007年浙江大学计算机及软件工程研究生机试真题

答疑:解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7744-1-1.html

本题重在找出输出的条件,使用break,continue挺给力。

/*

*/
#include<stdio.h>
#include<algorithm>
using namespace std;

int main()
{
//freopen("G:\\in.txt","r",stdin);
int x,y,cnt=0;
int xx[100],yy[100];
while(scanf("%d%d",&x,&y)!=EOF){
if(x==0&&y==0){
if(cnt>0){
sort(xx,xx+cnt);sort(yy,yy+cnt);
printf("%d %d %d %d\n",xx[0],yy[0],xx[cnt-1],yy[cnt-1]);
}
cnt=0;
continue;
}
xx[cnt]=x;yy[cnt]=y;
cnt++;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: