XDOJ1140 - 我们都会

来源:互联网 发布:校园导游c语言 编辑:程序博客网 时间:2024/04/30 22:48
Description

  acm实验室中每个人都精通某一项领域。。。但是有些简单的像a+b problem。。基本上都会。。。如果把每个人会的领域看成个矩形。。。那么所有矩形的交就是实验室中每个人都会的领域。。。现在上聪明的你算出每个人都会的领域的面积。。。

Input
第一行为t个测试数据(t<10)。。。每个测试数据第一行一个数n。。表示n个人(n<10)。。接下来n行每一行表示矩阵对角线两点坐标;为(x1,y1,x2,y2都小于1000整数)
Output
t行每一行一个数为矩阵交的面积
Sample Input
3
2
0 0 2 2
3 3 1 1
3
0 0 5 5
1 1 4 4
3 0 2 3
2
0 0 2 2
5 5 7 7
Sample Output
1
2
0
解题思路:
这个题非常简单,只要记住x、y坐标的最小值和最大值即可
#include <iostream>using namespace std;void swap(int&r1,int& r2){    int temp = r1;    r1 = r2;    r2 = temp;}int main(){    int T;    cin>>T;    for(int c=0;c<T;++c)    {        int n;        cin>>n;        int minX,minY,maxX,maxY;        minX = minY = 0;        maxX = maxY = 1000;        int x1,x2,y1,y2;        for(int i=0;i<n;++i)        {            cin>>x1>>y1>>x2>>y2;            if(x1>x2)                swap(x1,x2);            if(y1>y2)                swap(y1,y2);            if(x1>minX)                minX = x1;            if(x2<maxX)                maxX = x2;            if(y1>minY)                minY = y1;            if(y2<maxY)                maxY = y2;        }            if(minX>=maxX)            {                cout<<0<<endl;                continue;            }            if(minY>=maxY)            {                cout<<0<<endl;                continue;            }            cout<<(maxX-minX)*(maxY-minY)<<endl;    }    return 0;}


0 0
原创粉丝点击