/*
判断六个矩形能否组成长方体,我们只要找到一组充要条件去判断即可
这里用的就是把边排序,然后根据对面必相等,相邻面有边重合判断
*/
//看了别人代码,再自己写出来的,无什么心情写这一题!囧!
#include "iostream"
#include "stdio.h"
#include "algorithm"
using namespace std;
struct Rect
{
int x;
int y;
}rect[6];
bool cmpy(Rect a, Rect b)
{
if (a.x != b.x)
return a.x < b.x;
else
return a.y < b.y;
}
bool equal(Rect a, Rect b)
{
return (a.x == b.x) && (a.y == b.y);
}
int main()
{
int i;
while (1)
{
bool flag = false;
for (i = 0; i < 6; i++)
{
if( EOF == scanf("%d%d", &rect[i].x, &rect[i].y) )
{
flag = true ;
break ;
}
if( rect[i].x > rect[i].y )
swap( rect[i].x, rect[i].y ) ;
}
if (flag)
break;
sort( rect, rect+6, cmpy );
if( !equal(rect[0],rect[1]) || !equal(rect[2],rect[3]) || !equal(rect[4],rect[5]) ||
rect[0].x!=rect[2].x || rect[0].y!=rect[4].x || rect[2].y!=rect[4].y )
cout << "IMPOSSIBLE" << endl;
else
cout << "POSSIBLE" << endl;
}
}
zoj 2659 Box
最新推荐文章于 2022-01-31 18:26:48 发布