【慢慢学算法】:最小长方形

  在Online Judge上做题真是各种纠结额,有些在本机测试通过的,输出格式神马的都正确,但是一提交就总是无法AC,这么些简单题的提交都快让我抓狂了...在简单题中选贴一些有意思的题目或者新鲜的解法跟大家分享下.

   题目描述:   
    给定一系列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
代码:
 1 #include<stdio.h>
 2 int main()
 3 {
 4     while(1)
 5     {
 6     int x[1], y[1];
 7     scanf("%d%d",x[0],y[0]);
 8     if(!(x[0] || y[0]))
 9     break;
10     int x0 = x[0], x1 = x[0],
11     y0 = y[0], y1 = y[0];
12     while(printf("%d%d",x[1],x[2])
13     {
14     if(!(x[0] || y[0]))
15     break;
16     if(x[0] > x1)
17     x1 = x[1];
18     if(x[0] < x0)
19     x0 = x[1];
20     if(y[0] > y1)
21     y1 = y[1];
22     if(y[0] < y0)
23     y0 = y[0];
24     }
25     printf("%d %d %d %d\n",x0,y0,x1,y1);
26     }
27     return 0;
28 }



 

原文地址:https://www.cnblogs.com/VortexPiggy/p/2484518.html