这题就是判断给出的六个面能否组成长方体
1.判断能否两两对称
2.判断对称的三个面中能否组成长方体(正方体也可以)
以上
#include
#include
#include
#include
//using namespace std;
char *ans[2]={"POSSIBLE","IMPOSSIBLE"};
char *ansb[1010];
int jud[6];
int wh[6][3],newwh[4][3];
bool ok(){
if(newwh[0][0]==newwh[2][0] && newwh[0][1]==newwh[1][1] && newwh[1][0]==newwh[2][1])
return true;
if(newwh[0][0]==newwh[2][0] && newwh[0][1]==newwh[1][0] && newwh[1][1]==newwh[2][1])
return true;
if(newwh[0][0]==newwh[1][0] && newwh[0][1]==newwh[2][1] && newwh[1][1]==newwh[2][0])
return true;
if(newwh[0][0]==newwh[1][0] && newwh[0][1]==newwh[2][0] && newwh[1][1]==newwh[2][1])
return true;
if(newwh[1][0]==newwh[2][0] && newwh[0][0]==newwh[1][1] && newwh[0][1]==newwh[2][1])
return true;
if(newwh[1][0]==newwh[2][0] && newwh[0][0]==newwh[2][1] && newwh[0][1]==newwh[1][1])
return true;
if(newwh[0][0]==newwh[1][0] && newwh[1][0]==newwh[2][0] && newwh[2][0]==newwh[0][1] && newwh[0][1]==newwh[12][1] && newwh[1][1]==newwh[2][1])
return true;
return false;
}
int main(){
int sb=0;
while(scanf("%d %d",&wh[0][0],&wh[0][1])!=EOF){
if(wh[0][0]>=wh[0][1]){
int t=wh[0][0];
wh[0][0]=wh[0][1];
wh[0][1]=t;
}
for(int i=1;i<6;i++){ //这里输入六组数据
scanf("%d %d",&wh[i][0],&wh[i][1]); //这里让每组数据都按从小到大的顺序排列
if(wh[i][0]>=wh[i][1]){
int t=wh[i][0];
wh[i][0]=wh[i][1];
wh[i][1]=t;
}
}
int t=0;
for(int i=0;i<6;i++){
for(int j=i+1;j<6;j++){
if(wh[i][0]==wh[j][0]&&wh[i][1]==wh[j][1]){
newwh[t][0]=wh[i][0];
newwh[t][1]=wh[i][1];t++;
}
}
}
if(t<=3){
ansb[sb]=ans[1];sb++;
break;;
}
if(ok()){
ansb[sb]=ans[0];sb++;
break;
}
else
ansb[sb]=ans[1];sb++;
break;
}
for(int bs=0;bs