/*
CODECHEF
PROBLEM CODE : POKER
*/
#include<stdio.h>
int main()
{
int cases;
int i,j;
int temp;
int rank[5];
char suit[5],space,ch;
scanf("%d%c",&cases,&space);
while(cases--)
{
for(i=0;i<5;i++)
{
scanf("%c%c%c",&ch,&suit[i],&space);
switch(ch){
case 'A':rank[i]=1;
break;
case 'K':rank[i]=13;
break;
case 'Q':rank[i]=12;
break;
case 'J':rank[i]=11;
break;
case 'T':rank[i]=10;
break;
default:rank[i]=ch-'0';
};
for(j=0;j<i;j++)
if(rank[i]<rank[j])
{
temp=rank[i];
rank[i]=rank[j];
rank[j]=temp;
temp=suit[i];
suit[i]=suit[j];
suit[j]=temp;
}
}
i=1;
while(i<5 && suit[i]==suit[0])
i++;
if(i==5)
{
if(rank[0]==1 && rank[1]==10 && rank[4]==13)
printf("royal flush\n");
else if(rank[4]-rank[0]==4)
printf("straight flush\n");
else
printf("flush\n");
}
else if(rank[3]==rank[0] || rank[4]==rank[1])
printf("four of a kind\n");
else if(rank[2]==rank[0] || rank[3]==rank[1] || rank[4]==rank[2])
{
if((rank[0]==rank[2] && rank[3]==rank[4])||(rank[0]==rank[1] && rank[2]==rank[4]))
printf("full house\n");
else
printf("three of a kind\n");
}
else if((rank[4]-rank[0]==4)||(rank[0]==1&& rank[1]==rank[4]))
printf("straight\n");
else if((rank[0]==rank[1] &&(rank[2]==rank[3]||rank[3]==rank[4]))||(rank[1]==rank[2] &&rank[3]==rank[4]))
printf("two pairs\n");
else{
for(i=0;i<5 && rank[i]!=rank[i+1];)
i++;
if(i<5)
printf("pair\n");
else
printf("high card\n");
}
}
return 0;
}
0 comments:
Post a Comment