http://acm.pku.edu.cn/JudgeOnline/problem?id=1217
Код:
#include<stdio.h> int main() { double b[6]={0.0625,0.125,0.375,0.25,0.125,0.0625},c[121],d[121],aw,bw,t; int i,j,k,a[6]={-3,-1,0,1,2,3}; printf("Round A wins B wins Tie\n"); for(i=1;i<=20;i++) { for(j=0;j<121;j++) c[j]=0; aw=0; bw=0; t=0; if(i==1) { for(j=0;j<6;j++) if(a[j]>=0) c[a[j]]=b[j]; else c[121+a[j]]=b[j]; } else { for(j=0;j<=3*i-3;j++) for(k=0;k<6;k++) if(j+a[k]>=0) c[j+a[k]]+=d[j]*b[k]; else c[121+j+a[k]]+=d[j]*b[k]; for(j=120;j>=121-3*i;j--) for(k=0;k<6;k++) if(j+a[k]>120) c[j+a[k]-121]+=d[j]*b[k]; else c[j+a[k]]+=d[j]*b[k]; } for(j=1;j<=3*i;j++) aw+=c[j]; for(j=120;j>=121-3*i;j--) bw+=c[j]; t=c[0]; if(bw<0.1) printf("%5d %.4f%% %7.4f%% %-6.4f%%\n",i,aw*100,bw*100,t*100); else if(t<0.1&&bw>0.1) printf("%5d %.4f%% %-7.4f%% %7.4f%%\n",i,aw*100,bw*100,t*100); else printf("%5d %.4f%% %-7.4f%% %-7.4f%%\n",i,aw*100,bw*100,t*100); for(j=0;j<121;j++) d[j]=c[j]; } }