题目大意:
给定六行数据,每一组是长方形的长和宽,判断这六个长方形是否可以组成一个长方体。
#include <bits/stdc++.h>
using namespace std;
struct node
{
int x, y;//长和宽
}t[12];
bool cmp(const node &a, const node &b)
{
if(a.x==b.x)
return a.y<b.y;
return a.x<b.x;
}
int main()
{
while(cin>>t[0].x)
{
cin>>t[0].y;//宽为x,长为y
int temp;
if(t[0].x>t[0].y)
temp = t[0].x, t[0].x = t[0].y, t[0].y = temp;
for(int i=1;i<6;i++)
{
cin>>t[i].x>>t[i].y;
if(t[i].x>t[i].y)
temp = t[i].x, t[i].x = t[i].y, t[i].y = temp;
}
sort(t, t+6, cmp);//排序
int cnt = 0;
if((t[0].x==t[1].x&&t[0].y==t[1].y)&&(t[2].x==t[3].x&&t[2].y==t[3].y)&&(t[4].x==t[5].x&&t[4].y==t[5].y))//如果有两组边相等,先将cnt改为1
cnt = 1;
if(t[0].x != t[2].x || t[2].y != t[4].y || t[1].y != t[4].x)//判断是否有四条边相等
cnt = 0;
if(cnt)
cout<<"POSSIBLE"<<endl;
else
cout<<"IMPOSSIBLE"<<endl;
}
return 0;
}