UVa1587 box(盒子)

Describe
多实例测试。给出6个矩形的长和宽,判断这6个面是不是可以围成一个长方体,若可以围成,则输出“POSSIBLE”(不包含引号),否则输出“IMPOSSIBLE”(不包含引号),每个输出占一行

Input
输入文件包含几个测试用例。它们每个由六行组成。每一行描述一个矩形,包含两个整数数字w和h (1 ≤ w,h ≤ 10000)。 宽度和高度单位都是米Output对于每个测试用例,打印一行输出。如果可以使用六个给定的矩形围成一个盒子,那么输出一个单词“POSSIBLE”。如果不可能的话,输出一个单词“IMPOSSIBLE”。
Sample Input
1345 2584
2584 683
2584 1345
683 1345
683 1345
2584 683
1234 4567
1234 4567
4567 4321
4322 4567
4321 1234
4321 1234
Sample Output
POSSIBLE
IMPOSSIBLE
 
 
解答:
         要想构成立方体,最多有三种不同长度的边。设其为A,B,C且A
 
#include
#include
#include
#include
using namespace std;
#define x first
#define y second
pair<int,int> a[7];
int main()
{
    while (1)
    {
        for(int i=1;i<=6;i++)
        {
            if(!(cin>>a[i].x>>a[i].y)) return 0;
            if(a[i].x>a[i].y)swap(a[i].x,a[i].y);//相当于等价旋转。
        }
        sort(a+1,a+7);
        if((a[1]==a[2]&&a[3]==a[4]&&a[5]==a[6])&&a[1].x==a[3].x&&a[3].y==a[5].y&&a[5].x==a[1].y)
        {
            printf("POSSIBLE\n");
        }
        else printf("IMPOSSIBLE\n");
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/satans/p/11112278.html

你可能感兴趣的:(UVa1587 box(盒子))