略水的一题
给你六个面,判断能不能组成长方体
定义一个mian的结构体{
int 长;
int 宽;
};
输入的时候严格按照长大于宽输入
然后sort
长相等的时候按宽排序
这样三对面就排在一起了
然后判断
第一次写这么长的判断 Orz
一次过。~( ̄▽ ̄~)(~ ̄▽ ̄)~
ps:刚开始敲的时候以为条件判断没法处理所有的情况
不过敲着敲着发现只有两种情况
#include<stdio.h>
#include<algorithm>
using namespace std;
struct mian{
int c;
int k;
}p[10];
bool so(mian a,mian b){
if(a.c!=b.c)
return a.c>b.c;
return a.k>b.k;
}
bool operator ==(mian a,mian b){
if(a.c==b.c && a.k==b.k)
return true;
return false;
}
int main(){
int a,b;
while(~scanf("%d %d",&a,&b)){
int x=max(a,b);
int y=min(a,b);
p[0].c=x;
p[0].k=y;
for(int i=1;i<6;i++){
scanf("%d %d",&a,&b);
x=max(a,b);
y=min(a,b);
p[i].c=x,p[i].k=y;
}
sort(p,p+6,so);
if(p[0]==p[1] && p[3]==p[2] && p[4]==p[5] && p[0].c==p[3].c
&& ((p[5].c==p[0].k && p[2].k==p[4].k)|| (p[5].c==p[3].k && p[0].k==p[5].k)))
printf("POSSIBLE\n");
else
printf("IMPOSSIBLE\n");
}
return 0;
}