最小長方形 華為oj

2021-07-04 10:41:35 字數 1369 閱讀 6055

描述:

給定一系列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...