XDOJ1140 - 我们都会

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;
}

 

最后欢迎大家访问我的个人网站: 1024s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值