题意:给你6个面判断他们是否构成一个长方体。
题目:https://cn.vjudge.net/contest/220166#problem/J
思路:先将输入的两个数排序然后在对6个面排序,先确定第2个面在确定4个高 在确定其与的面。
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>pll;
vector<pll>st;
int a[13];
int main(){
//freopen("data.in","r",stdin);
while(cin>>a[0]>>a[1]>>a[2]>>a[3]>>a[4]>>a[5]>>a[6]>>a[7]>>a[8]>>a[9]>>a[10]>>a[11]){
st.clear();
for(int i=0;i<12;i+=2){
if(a[i]>a[i+1])
swap(a[i],a[i+1]);
pll t={a[i],a[i+1]};
st.push_back(t);
}
sort(st.begin(),st.end());
int ok=0;
if(st[0].first!=st[1].first||st[0].second!=st[1].second)
ok=1;
else{
if(st[2].second!=st[3].second||st[2].second!=st[4].second||st[2].second!=st[5].second)
ok=1;
else{
if(st[0].first!=st[2].first||st[0].first!=st[3].first)
ok=1;
else{
if(st[0].second!=st[4].first||st[0].second!=st[5].first)
ok=1;
}
}
}
if(ok)
cout<<"IMPOSSIBLE"<<endl;
else
cout<<"POSSIBLE"<<endl;
}
return 0;
}