愛悠閑 > 九度論壇--上機題1020:最小長方形

九度論壇--上機題1020:最小長方形

分類: 大學生活——考研  |  作者: qust_waiwai 相關  |  發布日期 : 2014-05-11  |  熱度 : 311°

1020: 最小長方形

時間限制: 1Sec    內存限制: 32 MB
提交:142    解決: 99

題目描述

      給定一系列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年浙江大學計算機及軟件工程研究生機試真題

 

#include <iostream>

using namespace std;

int main()
{
    //cout<< "Hello world!"<< endl;
    intx=0,y=0;
    intmax_x=0,min_x=0,max_y=0,min_y=0;
   while(cin>>x>>y)
    {
       if(x==0 && y==0)
       {
           break;
       }
      min_x = max_x = x;
      min_y = max_y = y;
       while(cin>>x>>y)
       {
           if(x==0 && y==0)
           {
               cout<<min_x<<""<<min_y<<""<<max_x<<""<<max_y<<endl;
               min_x =max_x=min_y=max_y=0;
               break;
           }
           if(x>=max_x)
           {
               max_x=x;
           }
           else if(x<min_x)
           {
               min_x=x;
           }
           if(y>=max_y)
           {
               max_y=y;
           }
           else if(y<min_y)
           {
               min_y=y;
           }
       }
    }
    return0;
}



快乐彩中奖说明