#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int a[15],b[15],c[15],j,i,flag,k1,k2,t;
while(cin>>a[0])
{
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
j=0;
flag=0;
for(i=1;i<12;i++)
cin>>a[i];
for(i=0;i<12;i++)
{
if(a[i]==b[0]) c[0]++;
else if(a[i]==b[1]) c[1]++;
else if(a[i]==b[2]) c[2]++;
else {c[j]++;b[j++]=a[i];}
if(j>3)
{
cout<<"IMPOSSIBLE"<<endl;
break;
}
}
if(i==12)
{
if(c[0]==12)
cout<<"POSSIBLE"<<endl;
else if((c[0]==8&&c[1]==4)||(c[0]==4&&c[1]==8))
{
if(c[0]>c[1])
t=b[0];
else
t=b[1];
for(flag=k1=k2=i=0;i<12;i+=2)
{
if(a[i]==a[i+1])
{
k1++;
t=a[i];
}
else
{
if(t==a[i]||a[i+1]==t)
flag=1;
}
}
if(k1==2&&flag)
cout<<"POSSIBLE"<<endl;
else
cout<<"IMPOSSIBLE"<<endl;
}
else if(c[0]==c[1]&&c[0]==c[2]&&c[0]==4)
{
for(i=0;i<12;i+=2)
{
if(a[i]==a[i+1])
{
cout<<"IMPOSSIBLE"<<endl;
break;
}
}
if(i==12)
cout<<"POSSIBLE"<<endl;
}
else cout<<"IMPOSSIBLE"<<endl;
}
}
}
别人的:
http://www.cnblogs.com/chaiwentao/p/3938546.html
http://blog.csdn.net/acvay/article/details/42811867