http://hihocoder.com/problemset/problem/1177 题目
纯模拟。。。无聊做的,,,交了几次GCC编译错误,,,,
主要就是把A当做14,,,特判有A 的情况,,,,,,剩下的就看给的数里面最大减最小是不是4或者3了,,,,分别输出概率,。,,,,注意0的时候。。。错了两回
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#include<bits/stdc++.h>
int main()
{
char a[5][10];
int b[5][4];
while(scanf("%s%s%s%s",a[0],a[1],a[2],a[3])!=EOF)
{
//puts(a[2]);
if(a[0][0]==a[1][0]||a[0][0]==a[2][0]||a[0][0]==a[3][0]||a[1][0]==a[2][0]||a[1][0]==a[3][0]||a[2][0]==a[3][0]) {printf("0/1\n"); continue;}
int i,j;
for(i=0;i<4;i++)
{
if(a[i][0]=='1'&&a[i][1]=='0')
{
b[i][0]=10;
b[i][1]=a[i][2]-'A';
}
else if(a[i][0]=='A')
{
b[i][0]=14;
b[i][1]=a[i][1]-'A';
}
else if(a[i][0]>='1'&&a[i][0]<='9')
{
b[i][0]=a[i][0]-'0';
b[i][1]=a[i][1]-'A';
}
else if(a[i][0]=='J'||a[i][0]=='Q'||a[i][0]=='K')
{
if(a[i][0]=='J') b[i][0]=11;
else if(a[i][0]=='Q') b[i][0]=12;
else b[i][0]=13;
b[i][1]=a[i][1]-'A';
//printf("%d %d***\n",b[i][0],b[i][1]);
}
}
for(i=0;i<4;i++)
{
for(j=i+1;j<4;j++)
{
if(b[i][0]>b[j][0])
{
int t=b[i][0];
b[i][0]=b[j][0];
b[j][0]=t;
t=b[i][1];
b[i][1]=b[j][1];
b[j][1]=t;
}
}
}
int tonghua=0;
if(b[0][1]==b[1][1]&&b[2][1]==b[1][1]&&b[2][1]==b[3][1]) tonghua = 1;
if(b[3][0]==14)
{
if(b[0][0]+b[1][0]+b[2][0]<=9)
{
if(tonghua)
{
printf("1/16\n");
}
else printf("1/12\n");
}
else if(b[0][0]==10||b[0][0]==9)
{
if(tonghua)
{
printf("1/16\n");
}
else printf("1/12\n");
}
}
else if(b[3][0]-b[0][0]==3)
{
if(tonghua)
{
printf("1/8\n");
}
else printf("1/6\n");
}
else if(b[3][0]-b[0][0]==4)
{
if(tonghua)
{
printf("1/16\n");
}
else printf("1/12\n");
}
else printf("0/1\n");
}
return 0;
}