描述:
給定一系列2維平面點的座標(x, y),其中x和y均為整數,要求用乙個最小的長方形框將所有點框在內。長方形框的邊分別平行於x和y座標軸,點落在邊上也算是被框在內。
執行時間限制: 10 sec
記憶體限制: 128 mbyte
輸入:
測試輸入包含若干測試用例,每個測試用例由一系列座標組成,每對座標(x y) 佔一行,其中|x|和|y|小於 1000;一對(0,0) 座標標誌著乙個測試用例的結束。注意(0, 0)不作為任何乙個測試用例裡面的點。乙個沒有點的測試用例標誌著整個輸入的結束。
輸出:
對每個測試用例,在1行內輸出2對整數,其間用乙個空格隔開。第1對整數是長方形框左下角的座標,第2對整數是長方形框右上角的座標。
如果只是乙個點或者一條線,不輸出。例如:
12 34
0 0
只是乙個點,不是長方形,不輸出。
樣例輸入:
12 56
23 56
13 10
0 0
12 34
0 0
0 0
樣例輸出:
12 10 23 56
#include
#include
#define n 100
#define min(a,b) (a)>(b)?(b):(a)
#define max(a,b) (a)>(b)?(a):(b)
struct trantrangle[n];
int istrangle(int x1,int x2,int y1,int y2,int num)
int isoneline(int x1,int y1,int x2,int y2,int x3,int y3)
int main()
if(firstnumflag==1)else
trangle[count].x1=min(trangle[count].x1,x);
trangle[count].x2=max(trangle[count].x2,x);
trangle[count].y1=min(trangle[count].y1,y);
trangle[count].y2=max(trangle[count].y2,y);
}tt=0;
}//end while
scanf("%d %d",&x,&y);tt=1;
if(x==0&&y==0&&firstnumflag==0)
else firstnumflag=1;
count++;
}//end while
for(i=0;ireturn
0;}
最小長方形
題目 給定一系列2維平面點的座標 x,y 其中x和y均為整數,要求用乙個最小的長方形框將所有點框在內。長方形框的邊分別平行於x和y座標軸,點落在邊上也算是被框在內。輸入 測試輸入包含若干測試用例,每個測試用例由一系列座標組成,每對座標 x y 佔一行,其中 x 和 y 小於 1000 一對 0,0 ...
最小長方形
題目描述 給定一系列2維平面點的座標 x,y 其中x和y均為整數,要求用乙個最小的長方形框將所有點框在內。長方形框的邊分別平行於x和y座標軸,點落在邊上也算是被框在內。輸入 測試輸入包含若干測試用例,每個測試用例由一系列座標組成,每對座標佔一行,其中 x 和 y 小於 231 一對0 座標標誌著乙個...
最小長方形
果然,自己的 和別人的 的差別,就是這麼大!所以以後,還是要好好練習,自己寫 先寫自己的,再看別人的,因為差別太大了。看著別人的 根本就不動腦子了。連簡單的都寫不出來了!看看吧,這就是差別!include include int a 1005 b 1005 int main int amax 240...