#include <stdio.h>
main()
{
int x,y,b[4]={0},f=0,f1=1;
while(scanf("%d%d",&x,&y)!=EOF)
{
if(f1&&(x!=0||y!=0)) //控制不是(0,0)求x,y的最小、最大
{
b[0]=b[2]=x;
b[1]=b[3]=y;
f1=0;
}
if(x!=0||y!=0)
{
if(b[0]>x) //求x最小
b[0]=x;
if(b[1]>y) //求y最小
b[1]=y;
if(b[2]<x) //求x最大
b[2]=x;
if(b[3]<y) //求y最大
b[3]=y;
f=1;
}
if(f&&x==0&&y==0)
{
printf("%d %d %d %d\n",b[0],b[1],b[2],b[3]);
f=b[0]=b[1]=b[2]=b[3]=0;
f1=1;
}
}
}
注意:
1、测试输入包含若干测试用例,每个测试用例由一系列坐标组成,每对坐标占一行,其中|x|和|y|小于231;一对0坐标标志着一个测试用例的结束。注意(0,0)不作为任何一个测试用例里面的点。一个没有点的测试用例标志着整个输入的结束。
2、对每个测试用例,在1行内输出2对整数,期间用一个空格隔开。第1对整数是长方形框左下角的坐标,第二2对整数是长方形框右下角的坐标。
3、很容易可以看出此题的规律:输出第1组,x最小,y最小;输出第2组,x最大,y最大;
收获:
1、让我了解最优的情况。