给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所有点框在内。长方形框的边分别平行于x和y坐标轴,点落在边上也算是被框在内。
Input
测试输入包含若干测试用例,每个测试用例由一系列坐标组成,每对坐标占一行,其中|x|和|y|小于 231;一对0 坐标标志着一个测试用例的结束。注意(0, 0)不作为任何一个测试用例里面的点。一个没有点的测试用例标志着整个输入的结束。
Output
对每个测试用例,在1行内输出2对整数,其间用一个空格隔开。第1对整数是长方形框左下角的坐标,第2对整数是长方形框右上角的坐标。
Sample Input
12 56 23 56 13 10 0 0 12 34 0 0 0 0
Sample Output
12 10 23 56 12 34 12 34
#include<iostream>
#define NUL 0x3f3f3f3f
using namespace std;
int main(){
int x1,x2,y1,y2;
int mini=NUL,maxi=-NUL,minj=NUL,maxj=-NUL;
while (scanf("%d%d",&x1,&y1)==2){
if (x1==0&&y1==0)
break;
mini=x1,maxi=x1,minj=y1,maxj=y1;
while(cin>>x1>>y1){
if (x1==0&&y1==0)
break;
if (mini>x1)mini=x1;
if (maxi<x1)maxi=x1;
if(minj>y1)minj=y1;
if(maxj<y1)maxj=y1;
}
cout<<mini<<" "<<minj<<" "<<maxi<<" "<<maxj<<endl;
}
return 0;
}