rt,样例最后一个不对,多了
#include<bits/stdc++.h>
using namespace std;
#define ll long long
struct Card{int hs,ds;}me[5],you[5],pi[5],a[5];bool operator!=(Card a,Card b){return a.hs!=b.hs||a.ds!=b.ds;}
char c1,c2;
int huase(char c){return c=='S'?0:c=='H'?1:c=='D'?2:3;}
int dianshu(char c){return c>='2'&&c<='9'?c-'0':c=='T'?10:c=='J'?11:c=='Q'?12:c=='K'?13:14;}
ll f(Card*b){
memcpy(a,b,sizeof a);
bool tonghua=(a[0].hs==a[1].hs&&a[1].hs==a[2].hs&&a[2].hs==a[3].hs&&a[3].hs==a[4].hs);
sort(a,a+5,[](Card a,Card b){return a.ds>b.ds;});
if(tonghua&&a[0].ds==14&&a[1].ds==13&&a[2].ds==12&&a[3].ds==11&&a[4].ds==10)return 100000000000ll;
if(tonghua&&a[0].ds==a[1].ds+1&&a[1].ds==a[2].ds+1&&a[2].ds==a[3].ds+1&&a[3].ds==a[4].ds+1)return 90000000000ll+a[0].ds;
if(tonghua&&a[0].ds==14&&a[1].ds==5&&a[2].ds==4&&a[3].ds==3&&a[4].ds==2)return 90000000005ll;
if(a[0].ds==a[1].ds&&a[1].ds==a[2].ds&&a[2].ds==a[3].ds)return 80000000000ll+a[0].ds*100+a[4].ds;
if(a[1].ds==a[2].ds&&a[2].ds==a[3].ds&&a[3].ds==a[4].ds)return 80000000000ll+a[1].ds*100+a[0].ds;
if(a[0].ds==a[1].ds&&a[1].ds==a[2].ds&&a[3].ds==a[4].ds)return 70000000000ll+a[0].ds*100+a[3].ds;
if(a[2].ds==a[3].ds&&a[3].ds==a[4].ds&&a[0].ds==a[1].ds)return 70000000000ll+a[2].ds*100+a[0].ds;
if(tonghua)return 60000000000ll+a[0].ds*100000000+a[1].ds*1000000+a[2].ds*10000+a[3].ds*100+a[4].ds;
if(a[0].ds==a[1].ds+1&&a[1].ds==a[2].ds+1&&a[2].ds==a[3].ds+1&&a[3].ds==a[4].ds+1)return 50000000000ll+a[0].ds;
if(a[0].ds==14&&a[1].ds==5&&a[2].ds==4&&a[3].ds==3&&a[4].ds==2)return 50000000005ll;
if(a[0].ds==a[1].ds&&a[1].ds==a[2].ds)return 40000000000ll+a[0].ds*10000+a[3].ds*100+a[4].ds;
if(a[1].ds==a[2].ds&&a[2].ds==a[3].ds)return 40000000000ll+a[1].ds*10000+a[0].ds*100+a[4].ds;
if(a[2].ds==a[3].ds&&a[3].ds==a[4].ds)return 40000000000ll+a[2].ds*10000+a[0].ds*100+a[1].ds;
if(a[0].ds==a[1].ds){
if(a[2].ds==a[3].ds)return 30000000000ll+a[0].ds*10000+a[2].ds*100+a[4].ds;
if(a[3].ds==a[4].ds)return 30000000000ll+a[0].ds*10000+a[3].ds*100+a[2].ds;
}if(a[1].ds==a[2].ds&&a[3].ds==a[4].ds)return 30000000000ll+a[1].ds*10000+a[3].ds*100+a[0].ds;
if(a[0].ds==a[1].ds)return 20000000000ll+a[0].ds*1000000+a[2].ds*10000+a[3].ds*100+a[4].ds;
if(a[1].ds==a[2].ds)return 20000000000ll+a[1].ds*1000000+a[0].ds*10000+a[3].ds*100+a[4].ds;
if(a[2].ds==a[3].ds)return 20000000000ll+a[2].ds*1000000+a[0].ds*10000+a[1].ds*100+a[4].ds;
if(a[3].ds==a[4].ds)return 20000000000ll+a[3].ds*1000000+a[0].ds*10000+a[1].ds*100+a[2].ds;
return 10000000000ll+a[0].ds*100000000+a[1].ds*1000000+a[2].ds*10000+a[3].ds*100+a[4].ds;
}int main(){
while(1){
cin>>c1;
if(c1=='#')break;
cin>>c2,me[0]={huase(c1),dianshu(c2)},cin>>c1>>c2,me[1]={huase(c1),dianshu(c2)},cin>>c1>>c2,you[0]={huase(c1),dianshu(c2)},cin>>c1>>c2,you[1]={huase(c1),dianshu(c2)};
for(int i=0;i<3;i++)cin>>c1>>c2,pi[i]={huase(c1),dianshu(c2)};
int cnt=0;
for(int i=0;i<4;i++)for(int j=2;j<=14;j++){
pi[3]={i,j};
if(pi[0]!=pi[3]&&pi[1]!=pi[3]&&pi[2]!=pi[3]&&me[0]!=pi[3]&&me[1]!=pi[3]&&you[0]!=pi[3]&&you[1]!=pi[3])for(int ii=0;ii<4;ii++)for(int jj=2;jj<=14;jj++){
pi[4]={ii,jj};
if(pi[0]!=pi[4]&&pi[1]!=pi[4]&&pi[2]!=pi[4]&&pi[3]!=pi[4]&&me[0]!=pi[4]&&me[1]!=pi[4]&&you[0]!=pi[4]&&you[1]!=pi[4]){
ll mef=0,youf=0;
for(int k1=0;k1<5;k1++)for(int k2=k1+1;k2<5;k2++)for(int k3=k2+1;k3<5;k3++)me[2]=pi[k1],me[3]=pi[k2],me[4]=pi[k3],mef=max(mef,f(me));
for(int k1=0;k1<5;k1++)for(int k2=k1+1;k2<5;k2++)for(int k3=k2+1;k3<5;k3++)you[2]=pi[k1],you[3]=pi[k2],you[4]=pi[k3],youf=max(youf,f(you));
if(mef>youf)++cnt;
}
}
}printf("%.20lf\n",cnt/1980.);
}return 0;
}