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];
}
}