// #include #include using namespace std; #define Real double #define EPS (Real)(1e-12) #define MAX_H 11 #define MAX_W 11 int h,w; Real p[MAX_H][MAX_W]; int s[MAX_H][MAX_W]; Real result; // Real raised[2][1<>h>>w; int mask_max = 1<>p[i][j]; p[i][j]/=100.0; } for(int i=0;i>s[i][j]; s[i][j] = 4-s[i][j]; } result = 0.0; raised[0][0] = 1.0; for(int i=0;i>j & 1 == 1){ rate *= p[i][j]; know[j] = true; }else{ rate *= (1.0-p[i][j]); know[j] = false; } } if(rate>j&1==1); } for(int j=0;j=4 && know[j] ){ raisings[j] = true; } } // from front & left for(int j=1;j=3 && know[j] && raising>>(j-1)&1==1 ){ raisings[j] = true; } } // from front & right for(int j=w-2;j>=0;--j){ if( !raisings[j] && active[j]>=3 && know[j] && raising>>(j+1)&1==1 ){ raisings[j] = true; } } // from front & left & right for(int j=1;j=2 && know[j] && raising>>(j-1)&1==1 && raising>>(j+1)&1==1 ){ raisings[j] = true; } } raising = 0; for(int j=0;j