#include #include #include #include #include const int LIMIT=5000; const int M=5; std::map strToNo; long long int ansC[M]={0,0,0,0,0}; long long int counts[3][M][M][M]; double ans=0; int as[3][3]; int noToCoin[M]; int cols[3][LIMIT]; int colSize[3]; void f(long long int p){ int a=as[0][0]; if((a==as[0][1])&&(a==as[0][2])){ ansC[a]+=p; ans+=p*noToCoin[a]; } a=as[1][0]; if((a==as[1][1])&&(a==as[1][2])){ ansC[a]+=p; ans+=p*noToCoin[a]; } a=as[2][0]; if((a==as[2][1])&&(a==as[2][2])){ ansC[a]+=p; ans+=p*noToCoin[a]; } a=as[0][0]; if((a==as[1][1])&&(a==as[2][2])){ ansC[a]+=p; ans+=p*noToCoin[a]; } a=as[2][0]; if((a==as[1][1])&&(a==as[0][2])){ ansC[a]+=p; ans+=p*noToCoin[a]; } } void read(int col){ int n; scanf("%d",&n); colSize[col]=n; for(int i=0;i>str; cols[col][i]=strToNo[str]; } } void regist(int no){ int c=colSize[no]; for(int i=0;i>str>>coin; noToCoin[i]=coin; strToNo[str]=i; } read(0); read(1); read(2); regist(0); regist(1); regist(2); search(0,1); double all=colSize[0]; all*=colSize[1]; all*=colSize[2]; printf("%lf\n",ans/all); for(int i=0;i