1 #include<bits/stdc++.h> 2 #define re register 3 #define F(A) for(re int (A)=1;(A)<=8;++(A)) 4 using namespace std; 5 int n,mi[10],sp[10],sa[10],kn[10],MI,SP,SA,KN; 6 double f[110][10][10][10][10],g[10][20]; 7 double ANS,mig[10],spe[10],san[10],kno[10]; 8 char s[100],s1[100],s2[100],s3[100],s4[100]; 9 double pre[10][20],suf[10][20]; 10 void addmi(int id,int val,double p){ 11 F(i) F(j) F(k) F(l){ 12 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 13 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 14 } 15 } 16 void addsp(int id,int val,double p){ 17 F(i) F(j) F(k) F(l){ 18 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 19 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 20 } 21 } 22 void addsa(int id,int val,double p){ 23 F(i) F(j) F(k) F(l){ 24 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 25 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 26 } 27 } 28 void addkn(int id,int val,double p){ 29 F(i) F(j) F(k) F(l){ 30 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 31 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 32 } 33 } 34 void mimixd(int id,int lim,int val){ 35 F(i) F(j) F(k) F(l){ 36 re double p=pre[mi[i]][lim]; 37 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 38 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 39 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 40 } 41 } 42 void mispxd(int id,int lim,int val){ 43 F(i) F(j) F(k) F(l){ 44 re double p=pre[mi[i]][lim]; 45 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 46 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 47 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 48 } 49 } 50 void misaxd(int id,int lim,int val){ 51 F(i) F(j) F(k) F(l){ 52 re double p=pre[mi[i]][lim]; 53 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 54 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 55 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 56 } 57 } 58 void miknxd(int id,int lim,int val){ 59 F(i) F(j) F(k) F(l){ 60 re double p=pre[mi[i]][lim]; 61 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 62 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 63 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 64 } 65 } 66 void spmixd(int id,int lim,int val){ 67 F(i) F(j) F(k) F(l){ 68 re double p=pre[sp[j]][lim]; 69 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 70 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 71 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 72 } 73 } 74 void spspxd(int id,int lim,int val){ 75 F(i) F(j) F(k) F(l){ 76 re double p=pre[sp[j]][lim]; 77 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 78 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 79 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 80 } 81 } 82 void spsaxd(int id,int lim,int val){ 83 F(i) F(j) F(k) F(l){ 84 re double p=pre[sp[j]][lim]; 85 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 86 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 87 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 88 } 89 } 90 void spknxd(int id,int lim,int val){ 91 F(i) F(j) F(k) F(l){ 92 re double p=pre[sp[j]][lim]; 93 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 94 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 95 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 96 } 97 } 98 void samixd(int id,int lim,int val){ 99 F(i) F(j) F(k) F(l){ 100 re double p=pre[sa[k]][lim]; 101 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 102 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 103 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 104 } 105 } 106 void saspxd(int id,int lim,int val){ 107 F(i) F(j) F(k) F(l){ 108 re double p=pre[sa[k]][lim]; 109 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 110 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 111 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 112 } 113 } 114 void sasaxd(int id,int lim,int val){ 115 F(i) F(j) F(k) F(l){ 116 re double p=pre[sa[k]][lim]; 117 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 118 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 119 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 120 } 121 } 122 void saknxd(int id,int lim,int val){ 123 F(i) F(j) F(k) F(l){ 124 re double p=pre[sa[k]][lim]; 125 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 126 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 127 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 128 } 129 } 130 void knmixd(int id,int lim,int val){ 131 F(i) F(j) F(k) F(l){ 132 re double p=pre[kn[l]][lim]; 133 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 134 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 135 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 136 } 137 } 138 void knspxd(int id,int lim,int val){ 139 F(i) F(j) F(k) F(l){ 140 re double p=pre[kn[l]][lim]; 141 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 142 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 143 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 144 } 145 } 146 void knsaxd(int id,int lim,int val){ 147 F(i) F(j) F(k) F(l){ 148 re double p=pre[kn[l]][lim]; 149 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 150 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 151 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 152 } 153 } 154 void knknxd(int id,int lim,int val){ 155 F(i) F(j) F(k) F(l){ 156 re double p=pre[kn[l]][lim]; 157 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 158 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 159 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 160 } 161 } 162 void mimix(int id,int lim,int val){ 163 F(i) F(j) F(k) F(l){ 164 re double p=pre[mi[i]][lim-1]; 165 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 166 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 167 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 168 } 169 } 170 void mispx(int id,int lim,int val){ 171 F(i) F(j) F(k) F(l){ 172 re double p=pre[mi[i]][lim-1]; 173 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 174 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 175 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 176 } 177 } 178 void misax(int id,int lim,int val){ 179 F(i) F(j) F(k) F(l){ 180 re double p=pre[mi[i]][lim-1]; 181 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 182 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 183 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 184 } 185 } 186 void miknx(int id,int lim,int val){ 187 F(i) F(j) F(k) F(l){ 188 re double p=pre[mi[i]][lim-1]; 189 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 190 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 191 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 192 } 193 } 194 void spmix(int id,int lim,int val){ 195 F(i) F(j) F(k) F(l){ 196 re double p=pre[sp[j]][lim-1]; 197 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 198 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 199 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 200 } 201 } 202 void spspx(int id,int lim,int val){ 203 F(i) F(j) F(k) F(l){ 204 re double p=pre[sp[j]][lim-1]; 205 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 206 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 207 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 208 } 209 } 210 void spsax(int id,int lim,int val){ 211 F(i) F(j) F(k) F(l){ 212 re double p=pre[sp[j]][lim-1]; 213 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 214 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 215 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 216 } 217 } 218 void spknx(int id,int lim,int val){ 219 F(i) F(j) F(k) F(l){ 220 re double p=pre[sp[j]][lim-1]; 221 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 222 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 223 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 224 } 225 } 226 void samix(int id,int lim,int val){ 227 F(i) F(j) F(k) F(l){ 228 re double p=pre[sa[k]][lim-1]; 229 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 230 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 231 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 232 } 233 } 234 void saspx(int id,int lim,int val){ 235 F(i) F(j) F(k) F(l){ 236 re double p=pre[sa[k]][lim-1]; 237 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 238 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 239 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 240 } 241 } 242 void sasax(int id,int lim,int val){ 243 F(i) F(j) F(k) F(l){ 244 re double p=pre[sa[k]][lim-1]; 245 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 246 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 247 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 248 } 249 } 250 void saknx(int id,int lim,int val){ 251 F(i) F(j) F(k) F(l){ 252 re double p=pre[sa[k]][lim-1]; 253 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 254 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 255 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 256 } 257 } 258 void knmix(int id,int lim,int val){ 259 F(i) F(j) F(k) F(l){ 260 re double p=pre[kn[l]][lim-1]; 261 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 262 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 263 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 264 } 265 } 266 void knspx(int id,int lim,int val){ 267 F(i) F(j) F(k) F(l){ 268 re double p=pre[kn[l]][lim-1]; 269 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 270 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 271 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 272 } 273 } 274 void knsax(int id,int lim,int val){ 275 F(i) F(j) F(k) F(l){ 276 re double p=pre[kn[l]][lim-1]; 277 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 278 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 279 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 280 } 281 } 282 void knknx(int id,int lim,int val){ 283 F(i) F(j) F(k) F(l){ 284 re double p=pre[kn[l]][lim-1]; 285 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 286 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 287 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 288 } 289 } 290 void mimidd(int id,int lim,int val){ 291 F(i) F(j) F(k) F(l){ 292 re double p=suf[mi[i]][lim]; 293 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 294 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 295 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 296 } 297 } 298 void mispdd(int id,int lim,int val){ 299 F(i) F(j) F(k) F(l){ 300 re double p=suf[mi[i]][lim]; 301 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 302 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 303 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 304 } 305 } 306 void misadd(int id,int lim,int val){ 307 F(i) F(j) F(k) F(l){ 308 re double p=suf[mi[i]][lim]; 309 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 310 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 311 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 312 } 313 } 314 void mikndd(int id,int lim,int val){ 315 F(i) F(j) F(k) F(l){ 316 re double p=suf[mi[i]][lim]; 317 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 318 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 319 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 320 } 321 } 322 void spmidd(int id,int lim,int val){ 323 F(i) F(j) F(k) F(l){ 324 re double p=suf[sp[j]][lim]; 325 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 326 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 327 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 328 } 329 } 330 void spspdd(int id,int lim,int val){ 331 F(i) F(j) F(k) F(l){ 332 re double p=suf[sp[j]][lim]; 333 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 334 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 335 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 336 } 337 } 338 void spsadd(int id,int lim,int val){ 339 F(i) F(j) F(k) F(l){ 340 re double p=suf[sp[j]][lim]; 341 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 342 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 343 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 344 } 345 } 346 void spkndd(int id,int lim,int val){ 347 F(i) F(j) F(k) F(l){ 348 re double p=suf[sp[j]][lim]; 349 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 350 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 351 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 352 } 353 } 354 void samidd(int id,int lim,int val){ 355 F(i) F(j) F(k) F(l){ 356 re double p=suf[sa[k]][lim]; 357 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 358 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 359 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 360 } 361 } 362 void saspdd(int id,int lim,int val){ 363 F(i) F(j) F(k) F(l){ 364 re double p=suf[sa[k]][lim]; 365 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 366 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 367 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 368 } 369 } 370 void sasadd(int id,int lim,int val){ 371 F(i) F(j) F(k) F(l){ 372 re double p=suf[sa[k]][lim]; 373 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 374 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 375 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 376 } 377 } 378 void sakndd(int id,int lim,int val){ 379 F(i) F(j) F(k) F(l){ 380 re double p=suf[sa[k]][lim]; 381 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 382 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 383 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 384 } 385 } 386 void knmidd(int id,int lim,int val){ 387 F(i) F(j) F(k) F(l){ 388 re double p=suf[kn[l]][lim]; 389 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 390 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 391 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 392 } 393 } 394 void knspdd(int id,int lim,int val){ 395 F(i) F(j) F(k) F(l){ 396 re double p=suf[kn[l]][lim]; 397 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 398 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 399 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 400 } 401 } 402 void knsadd(int id,int lim,int val){ 403 F(i) F(j) F(k) F(l){ 404 re double p=suf[kn[l]][lim]; 405 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 406 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 407 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 408 } 409 } 410 void knkndd(int id,int lim,int val){ 411 F(i) F(j) F(k) F(l){ 412 re double p=suf[kn[l]][lim]; 413 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 414 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 415 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 416 } 417 } 418 419 void mimid(int id,int lim,int val){ 420 F(i) F(j) F(k) F(l){ 421 re double p=suf[mi[i]][lim+1]; 422 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 423 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 424 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 425 } 426 } 427 void mispd(int id,int lim,int val){ 428 F(i) F(j) F(k) F(l){ 429 re double p=suf[mi[i]][lim+1]; 430 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 431 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 432 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 433 } 434 } 435 void misad(int id,int lim,int val){ 436 F(i) F(j) F(k) F(l){ 437 re double p=suf[mi[i]][lim+1]; 438 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 439 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 440 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 441 } 442 } 443 void miknd(int id,int lim,int val){ 444 F(i) F(j) F(k) F(l){ 445 re double p=suf[mi[i]][lim+1]; 446 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 447 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 448 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 449 } 450 } 451 void spmid(int id,int lim,int val){ 452 F(i) F(j) F(k) F(l){ 453 re double p=suf[sp[j]][lim+1]; 454 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 455 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 456 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 457 } 458 } 459 void spspd(int id,int lim,int val){ 460 F(i) F(j) F(k) F(l){ 461 re double p=suf[sp[j]][lim+1]; 462 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 463 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 464 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 465 } 466 } 467 void spsad(int id,int lim,int val){ 468 F(i) F(j) F(k) F(l){ 469 re double p=suf[sp[j]][lim+1]; 470 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 471 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 472 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 473 } 474 } 475 void spknd(int id,int lim,int val){ 476 F(i) F(j) F(k) F(l){ 477 re double p=suf[sp[j]][lim+1]; 478 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 479 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 480 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 481 } 482 } 483 void samid(int id,int lim,int val){ 484 F(i) F(j) F(k) F(l){ 485 re double p=suf[sa[k]][lim+1]; 486 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 487 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 488 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 489 } 490 } 491 void saspd(int id,int lim,int val){ 492 F(i) F(j) F(k) F(l){ 493 re double p=suf[sa[k]][lim+1]; 494 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 495 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 496 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 497 } 498 } 499 void sasad(int id,int lim,int val){ 500 F(i) F(j) F(k) F(l){ 501 re double p=suf[sa[k]][lim+1]; 502 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 503 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 504 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 505 } 506 } 507 void saknd(int id,int lim,int val){ 508 F(i) F(j) F(k) F(l){ 509 re double p=suf[sa[k]][lim+1]; 510 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 511 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 512 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 513 } 514 } 515 void knmid(int id,int lim,int val){ 516 F(i) F(j) F(k) F(l){ 517 re double p=suf[kn[l]][lim+1]; 518 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 519 if(i+val<=0) ANS+=f[id-1][i][j][k][l]*p; 520 else f[id][min(8,i+val)][j][k][l]+=f[id-1][i][j][k][l]*p; 521 } 522 } 523 void knspd(int id,int lim,int val){ 524 F(i) F(j) F(k) F(l){ 525 re double p=suf[kn[l]][lim+1]; 526 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 527 if(j+val<=0) ANS+=f[id-1][i][j][k][l]*p; 528 else f[id][i][min(8,j+val)][k][l]+=f[id-1][i][j][k][l]*p; 529 } 530 } 531 void knsad(int id,int lim,int val){ 532 F(i) F(j) F(k) F(l){ 533 re double p=suf[kn[l]][lim+1]; 534 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 535 if(k+val<=0) ANS+=f[id-1][i][j][k][l]*p; 536 else f[id][i][j][min(8,k+val)][l]+=f[id-1][i][j][k][l]*p; 537 } 538 } 539 void knknd(int id,int lim,int val){ 540 F(i) F(j) F(k) F(l){ 541 re double p=suf[kn[l]][lim+1]; 542 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 543 if(l+val<=0) ANS+=f[id-1][i][j][k][l]*p; 544 else f[id][i][j][k][min(8,l+val)]+=f[id-1][i][j][k][l]*p; 545 } 546 } 547 void mimixdw(int id,int lim,int val){ 548 re int flag=(val<0)?-1:1; 549 F(i) F(j) F(k) F(l){ 550 re double p=pre[mi[i]][lim]; 551 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 552 for(re int q=0;q<=16;++q){ 553 re double gl=g[abs(val)][q]; 554 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 555 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 556 } 557 } 558 } 559 void mispxdw(int id,int lim,int val){ 560 re int flag=(val<0)?-1:1; 561 F(i) F(j) F(k) F(l){ 562 re double p=pre[mi[i]][lim]; 563 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 564 for(re int q=0;q<=16;++q){ 565 re double gl=g[abs(val)][q]; 566 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 567 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 568 } 569 } 570 } 571 void misaxdw(int id,int lim,int val){ 572 re int flag=(val<0)?-1:1; 573 F(i) F(j) F(k) F(l){ 574 re double p=pre[mi[i]][lim]; 575 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 576 for(re int q=0;q<=16;++q){ 577 re double gl=g[abs(val)][q]; 578 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 579 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 580 } 581 } 582 } 583 void miknxdw(int id,int lim,int val){ 584 re int flag=(val<0)?-1:1; 585 F(i) F(j) F(k) F(l){ 586 re double p=pre[mi[i]][lim]; 587 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 588 for(re int q=0;q<=16;++q){ 589 re double gl=g[abs(val)][q]; 590 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 591 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 592 } 593 } 594 } 595 void spmixdw(int id,int lim,int val){ 596 re int flag=(val<0)?-1:1; 597 F(i) F(j) F(k) F(l){ 598 re double p=pre[sp[j]][lim]; 599 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 600 for(re int q=0;q<=16;++q){ 601 re double gl=g[abs(val)][q]; 602 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 603 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 604 } 605 } 606 } 607 void spspxdw(int id,int lim,int val){ 608 re int flag=(val<0)?-1:1; 609 F(i) F(j) F(k) F(l){ 610 re double p=pre[sp[j]][lim]; 611 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 612 for(re int q=0;q<=16;++q){ 613 re double gl=g[abs(val)][q]; 614 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 615 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 616 } 617 } 618 } 619 void spsaxdw(int id,int lim,int val){ 620 re int flag=(val<0)?-1:1; 621 F(i) F(j) F(k) F(l){ 622 re double p=pre[sp[j]][lim]; 623 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 624 for(re int q=0;q<=16;++q){ 625 re double gl=g[abs(val)][q]; 626 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 627 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 628 } 629 } 630 } 631 void spknxdw(int id,int lim,int val){ 632 re int flag=(val<0)?-1:1; 633 F(i) F(j) F(k) F(l){ 634 re double p=pre[sp[j]][lim]; 635 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 636 for(re int q=0;q<=16;++q){ 637 re double gl=g[abs(val)][q]; 638 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 639 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 640 } 641 } 642 } 643 void samixdw(int id,int lim,int val){ 644 re int flag=(val<0)?-1:1; 645 F(i) F(j) F(k) F(l){ 646 re double p=pre[sa[k]][lim]; 647 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 648 for(re int q=0;q<=16;++q){ 649 re double gl=g[abs(val)][q]; 650 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 651 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 652 } 653 } 654 } 655 void saspxdw(int id,int lim,int val){ 656 re int flag=(val<0)?-1:1; 657 F(i) F(j) F(k) F(l){ 658 re double p=pre[sa[k]][lim]; 659 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 660 for(re int q=0;q<=16;++q){ 661 re double gl=g[abs(val)][q]; 662 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 663 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 664 } 665 } 666 } 667 void sasaxdw(int id,int lim,int val){ 668 re int flag=(val<0)?-1:1; 669 F(i) F(j) F(k) F(l){ 670 re double p=pre[sa[k]][lim]; 671 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 672 for(re int q=0;q<=16;++q){ 673 re double gl=g[abs(val)][q]; 674 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 675 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 676 } 677 } 678 } 679 void saknxdw(int id,int lim,int val){ 680 re int flag=(val<0)?-1:1; 681 F(i) F(j) F(k) F(l){ 682 re double p=pre[sa[k]][lim]; 683 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 684 for(re int q=0;q<=16;++q){ 685 re double gl=g[abs(val)][q]; 686 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 687 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 688 } 689 } 690 } 691 void knmixdw(int id,int lim,int val){ 692 re int flag=(val<0)?-1:1; 693 F(i) F(j) F(k) F(l){ 694 re double p=pre[kn[l]][lim]; 695 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 696 for(re int q=0;q<=16;++q){ 697 re double gl=g[abs(val)][q]; 698 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 699 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 700 } 701 } 702 } 703 void knspxdw(int id,int lim,int val){ 704 re int flag=(val<0)?-1:1; 705 F(i) F(j) F(k) F(l){ 706 re double p=pre[kn[l]][lim]; 707 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 708 for(re int q=0;q<=16;++q){ 709 re double gl=g[abs(val)][q]; 710 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 711 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 712 } 713 } 714 } 715 void knsaxdw(int id,int lim,int val){ 716 re int flag=(val<0)?-1:1; 717 F(i) F(j) F(k) F(l){ 718 re double p=pre[kn[l]][lim]; 719 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 720 for(re int q=0;q<=16;++q){ 721 re double gl=g[abs(val)][q]; 722 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 723 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 724 } 725 } 726 } 727 void knknxdw(int id,int lim,int val){ 728 re int flag=(val<0)?-1:1; 729 F(i) F(j) F(k) F(l){ 730 re double p=pre[kn[l]][lim]; 731 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 732 for(re int q=0;q<=16;++q){ 733 re double gl=g[abs(val)][q]; 734 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 735 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 736 } 737 } 738 } 739 void mimixw(int id,int lim,int val){ 740 re int flag=(val<0)?-1:1; 741 F(i) F(j) F(k) F(l){ 742 re double p=pre[mi[i]][lim-1]; 743 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 744 for(re int q=0;q<=16;++q){ 745 re double gl=g[abs(val)][q]; 746 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 747 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 748 } 749 } 750 } 751 void mispxw(int id,int lim,int val){ 752 re int flag=(val<0)?-1:1; 753 F(i) F(j) F(k) F(l){ 754 re double p=pre[mi[i]][lim-1]; 755 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 756 for(re int q=0;q<=16;++q){ 757 re double gl=g[abs(val)][q]; 758 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 759 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 760 } 761 } 762 } 763 void misaxw(int id,int lim,int val){ 764 re int flag=(val<0)?-1:1; 765 F(i) F(j) F(k) F(l){ 766 re double p=pre[mi[i]][lim-1]; 767 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 768 for(re int q=0;q<=16;++q){ 769 re double gl=g[abs(val)][q]; 770 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 771 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 772 } 773 } 774 } 775 void miknxw(int id,int lim,int val){ 776 re int flag=(val<0)?-1:1; 777 F(i) F(j) F(k) F(l){ 778 re double p=pre[mi[i]][lim-1]; 779 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 780 for(re int q=0;q<=16;++q){ 781 re double gl=g[abs(val)][q]; 782 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 783 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 784 } 785 } 786 } 787 void spmixw(int id,int lim,int val){ 788 re int flag=(val<0)?-1:1; 789 F(i) F(j) F(k) F(l){ 790 re double p=pre[sp[j]][lim-1]; 791 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 792 for(re int q=0;q<=16;++q){ 793 re double gl=g[abs(val)][q]; 794 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 795 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 796 } 797 } 798 } 799 void spspxw(int id,int lim,int val){ 800 re int flag=(val<0)?-1:1; 801 F(i) F(j) F(k) F(l){ 802 re double p=pre[sp[j]][lim-1]; 803 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 804 for(re int q=0;q<=16;++q){ 805 re double gl=g[abs(val)][q]; 806 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 807 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 808 } 809 } 810 } 811 void spsaxw(int id,int lim,int val){ 812 re int flag=(val<0)?-1:1; 813 F(i) F(j) F(k) F(l){ 814 re double p=pre[sp[j]][lim-1]; 815 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 816 for(re int q=0;q<=16;++q){ 817 re double gl=g[abs(val)][q]; 818 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 819 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 820 } 821 } 822 } 823 void spknxw(int id,int lim,int val){ 824 re int flag=(val<0)?-1:1; 825 F(i) F(j) F(k) F(l){ 826 re double p=pre[sp[j]][lim-1]; 827 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 828 for(re int q=0;q<=16;++q){ 829 re double gl=g[abs(val)][q]; 830 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 831 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 832 } 833 } 834 } 835 void samixw(int id,int lim,int val){ 836 re int flag=(val<0)?-1:1; 837 F(i) F(j) F(k) F(l){ 838 re double p=pre[sa[k]][lim-1]; 839 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 840 for(re int q=0;q<=16;++q){ 841 re double gl=g[abs(val)][q]; 842 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 843 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 844 } 845 } 846 } 847 void saspxw(int id,int lim,int val){ 848 re int flag=(val<0)?-1:1; 849 F(i) F(j) F(k) F(l){ 850 re double p=pre[sa[k]][lim-1]; 851 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 852 for(re int q=0;q<=16;++q){ 853 re double gl=g[abs(val)][q]; 854 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 855 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 856 } 857 } 858 } 859 void sasaxw(int id,int lim,int val){ 860 re int flag=(val<0)?-1:1; 861 F(i) F(j) F(k) F(l){ 862 re double p=pre[sa[k]][lim-1]; 863 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 864 for(re int q=0;q<=16;++q){ 865 re double gl=g[abs(val)][q]; 866 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 867 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 868 } 869 } 870 } 871 void saknxw(int id,int lim,int val){ 872 re int flag=(val<0)?-1:1; 873 F(i) F(j) F(k) F(l){ 874 re double p=pre[sa[k]][lim-1]; 875 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 876 for(re int q=0;q<=16;++q){ 877 re double gl=g[abs(val)][q]; 878 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 879 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 880 } 881 } 882 } 883 void knmixw(int id,int lim,int val){ 884 re int flag=(val<0)?-1:1; 885 F(i) F(j) F(k) F(l){ 886 re double p=pre[kn[l]][lim-1]; 887 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 888 for(re int q=0;q<=16;++q){ 889 re double gl=g[abs(val)][q]; 890 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 891 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 892 } 893 } 894 } 895 void knspxw(int id,int lim,int val){ 896 re int flag=(val<0)?-1:1; 897 F(i) F(j) F(k) F(l){ 898 re double p=pre[kn[l]][lim-1]; 899 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 900 for(re int q=0;q<=16;++q){ 901 re double gl=g[abs(val)][q]; 902 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 903 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 904 } 905 } 906 } 907 void knsaxw(int id,int lim,int val){ 908 re int flag=(val<0)?-1:1; 909 F(i) F(j) F(k) F(l){ 910 re double p=pre[kn[l]][lim-1]; 911 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 912 for(re int q=0;q<=16;++q){ 913 re double gl=g[abs(val)][q]; 914 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 915 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 916 } 917 } 918 } 919 void knknxw(int id,int lim,int val){ 920 re int flag=(val<0)?-1:1; 921 F(i) F(j) F(k) F(l){ 922 re double p=pre[kn[l]][lim-1]; 923 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 924 for(re int q=0;q<=16;++q){ 925 re double gl=g[abs(val)][q]; 926 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 927 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 928 } 929 } 930 } 931 void mimiddw(int id,int lim,int val){ 932 re int flag=(val<0)?-1:1; 933 F(i) F(j) F(k) F(l){ 934 re double p=suf[mi[i]][lim]; 935 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 936 for(re int q=0;q<=16;++q){ 937 re double gl=g[abs(val)][q]; 938 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 939 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 940 } 941 } 942 } 943 void mispddw(int id,int lim,int val){ 944 re int flag=(val<0)?-1:1; 945 F(i) F(j) F(k) F(l){ 946 re double p=suf[mi[i]][lim]; 947 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 948 for(re int q=0;q<=16;++q){ 949 re double gl=g[abs(val)][q]; 950 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 951 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 952 } 953 } 954 } 955 void misaddw(int id,int lim,int val){ 956 re int flag=(val<0)?-1:1; 957 F(i) F(j) F(k) F(l){ 958 re double p=suf[mi[i]][lim]; 959 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 960 for(re int q=0;q<=16;++q){ 961 re double gl=g[abs(val)][q]; 962 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 963 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 964 } 965 } 966 } 967 void miknddw(int id,int lim,int val){ 968 re int flag=(val<0)?-1:1; 969 F(i) F(j) F(k) F(l){ 970 re double p=suf[mi[i]][lim]; 971 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 972 for(re int q=0;q<=16;++q){ 973 re double gl=g[abs(val)][q]; 974 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 975 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 976 } 977 } 978 } 979 void spmiddw(int id,int lim,int val){ 980 re int flag=(val<0)?-1:1; 981 F(i) F(j) F(k) F(l){ 982 re double p=suf[sp[j]][lim]; 983 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 984 for(re int q=0;q<=16;++q){ 985 re double gl=g[abs(val)][q]; 986 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 987 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 988 } 989 } 990 } 991 void spspddw(int id,int lim,int val){ 992 re int flag=(val<0)?-1:1; 993 F(i) F(j) F(k) F(l){ 994 re double p=suf[sp[j]][lim]; 995 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 996 for(re int q=0;q<=16;++q){ 997 re double gl=g[abs(val)][q]; 998 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 999 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 1000 } 1001 } 1002 } 1003 void spsaddw(int id,int lim,int val){ 1004 re int flag=(val<0)?-1:1; 1005 F(i) F(j) F(k) F(l){ 1006 re double p=suf[sp[j]][lim]; 1007 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1008 for(re int q=0;q<=16;++q){ 1009 re double gl=g[abs(val)][q]; 1010 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1011 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 1012 } 1013 } 1014 } 1015 void spknddw(int id,int lim,int val){ 1016 re int flag=(val<0)?-1:1; 1017 F(i) F(j) F(k) F(l){ 1018 re double p=suf[sp[j]][lim]; 1019 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1020 for(re int q=0;q<=16;++q){ 1021 re double gl=g[abs(val)][q]; 1022 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1023 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 1024 } 1025 } 1026 } 1027 void samiddw(int id,int lim,int val){ 1028 re int flag=(val<0)?-1:1; 1029 F(i) F(j) F(k) F(l){ 1030 re double p=suf[sa[k]][lim]; 1031 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1032 for(re int q=0;q<=16;++q){ 1033 re double gl=g[abs(val)][q]; 1034 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1035 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 1036 } 1037 } 1038 } 1039 void saspddw(int id,int lim,int val){ 1040 re int flag=(val<0)?-1:1; 1041 F(i) F(j) F(k) F(l){ 1042 re double p=suf[sa[k]][lim]; 1043 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1044 for(re int q=0;q<=16;++q){ 1045 re double gl=g[abs(val)][q]; 1046 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1047 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 1048 } 1049 } 1050 } 1051 void sasaddw(int id,int lim,int val){ 1052 re int flag=(val<0)?-1:1; 1053 F(i) F(j) F(k) F(l){ 1054 re double p=suf[sa[k]][lim]; 1055 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1056 for(re int q=0;q<=16;++q){ 1057 re double gl=g[abs(val)][q]; 1058 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1059 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 1060 } 1061 } 1062 } 1063 void saknddw(int id,int lim,int val){ 1064 re int flag=(val<0)?-1:1; 1065 F(i) F(j) F(k) F(l){ 1066 re double p=suf[sa[k]][lim]; 1067 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1068 for(re int q=0;q<=16;++q){ 1069 re double gl=g[abs(val)][q]; 1070 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1071 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 1072 } 1073 } 1074 } 1075 void knmiddw(int id,int lim,int val){ 1076 re int flag=(val<0)?-1:1; 1077 F(i) F(j) F(k) F(l){ 1078 re double p=suf[kn[l]][lim]; 1079 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1080 for(re int q=0;q<=16;++q){ 1081 re double gl=g[abs(val)][q]; 1082 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1083 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 1084 } 1085 } 1086 } 1087 void knspddw(int id,int lim,int val){ 1088 re int flag=(val<0)?-1:1; 1089 F(i) F(j) F(k) F(l){ 1090 re double p=suf[kn[l]][lim]; 1091 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1092 for(re int q=0;q<=16;++q){ 1093 re double gl=g[abs(val)][q]; 1094 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1095 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 1096 } 1097 } 1098 } 1099 void knsaddw(int id,int lim,int val){ 1100 re int flag=(val<0)?-1:1; 1101 F(i) F(j) F(k) F(l){ 1102 re double p=suf[kn[l]][lim]; 1103 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1104 for(re int q=0;q<=16;++q){ 1105 re double gl=g[abs(val)][q]; 1106 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1107 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 1108 } 1109 } 1110 } 1111 void knknddw(int id,int lim,int val){ 1112 re int flag=(val<0)?-1:1; 1113 F(i) F(j) F(k) F(l){ 1114 re double p=suf[kn[l]][lim]; 1115 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1116 for(re int q=0;q<=16;++q){ 1117 re double gl=g[abs(val)][q]; 1118 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1119 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 1120 } 1121 } 1122 } 1123 void mimidw(int id,int lim,int val){ 1124 re int flag=(val<0)?-1:1; 1125 F(i) F(j) F(k) F(l){ 1126 re double p=suf[mi[i]][lim+1]; 1127 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1128 for(re int q=0;q<=16;++q){ 1129 re double gl=g[abs(val)][q]; 1130 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1131 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 1132 } 1133 } 1134 } 1135 void mispdw(int id,int lim,int val){ 1136 re int flag=(val<0)?-1:1; 1137 F(i) F(j) F(k) F(l){ 1138 re double p=suf[mi[i]][lim+1]; 1139 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1140 for(re int q=0;q<=16;++q){ 1141 re double gl=g[abs(val)][q]; 1142 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1143 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 1144 } 1145 } 1146 } 1147 void misadw(int id,int lim,int val){ 1148 re int flag=(val<0)?-1:1; 1149 F(i) F(j) F(k) F(l){ 1150 re double p=suf[mi[i]][lim+1]; 1151 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1152 for(re int q=0;q<=16;++q){ 1153 re double gl=g[abs(val)][q]; 1154 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1155 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 1156 } 1157 } 1158 } 1159 void mikndw(int id,int lim,int val){ 1160 re int flag=(val<0)?-1:1; 1161 F(i) F(j) F(k) F(l){ 1162 re double p=suf[mi[i]][lim+1]; 1163 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1164 for(re int q=0;q<=16;++q){ 1165 re double gl=g[abs(val)][q]; 1166 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1167 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 1168 } 1169 } 1170 } 1171 void spmidw(int id,int lim,int val){ 1172 re int flag=(val<0)?-1:1; 1173 F(i) F(j) F(k) F(l){ 1174 re double p=suf[sp[j]][lim+1]; 1175 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1176 for(re int q=0;q<=16;++q){ 1177 re double gl=g[abs(val)][q]; 1178 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1179 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 1180 } 1181 } 1182 } 1183 void spspdw(int id,int lim,int val){ 1184 re int flag=(val<0)?-1:1; 1185 F(i) F(j) F(k) F(l){ 1186 re double p=suf[sp[j]][lim+1]; 1187 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1188 for(re int q=0;q<=16;++q){ 1189 re double gl=g[abs(val)][q]; 1190 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1191 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 1192 } 1193 } 1194 } 1195 void spsadw(int id,int lim,int val){ 1196 re int flag=(val<0)?-1:1; 1197 F(i) F(j) F(k) F(l){ 1198 re double p=suf[sp[j]][lim+1]; 1199 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1200 for(re int q=0;q<=16;++q){ 1201 re double gl=g[abs(val)][q]; 1202 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1203 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 1204 } 1205 } 1206 } 1207 void spkndw(int id,int lim,int val){ 1208 re int flag=(val<0)?-1:1; 1209 F(i) F(j) F(k) F(l){ 1210 re double p=suf[sp[j]][lim+1]; 1211 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1212 for(re int q=0;q<=16;++q){ 1213 re double gl=g[abs(val)][q]; 1214 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1215 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 1216 } 1217 } 1218 } 1219 void samidw(int id,int lim,int val){ 1220 re int flag=(val<0)?-1:1; 1221 F(i) F(j) F(k) F(l){ 1222 re double p=suf[sa[k]][lim+1]; 1223 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1224 for(re int q=0;q<=16;++q){ 1225 re double gl=g[abs(val)][q]; 1226 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1227 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 1228 } 1229 } 1230 } 1231 void saspdw(int id,int lim,int val){ 1232 re int flag=(val<0)?-1:1; 1233 F(i) F(j) F(k) F(l){ 1234 re double p=suf[sa[k]][lim+1]; 1235 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1236 for(re int q=0;q<=16;++q){ 1237 re double gl=g[abs(val)][q]; 1238 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1239 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 1240 } 1241 } 1242 } 1243 void sasadw(int id,int lim,int val){ 1244 re int flag=(val<0)?-1:1; 1245 F(i) F(j) F(k) F(l){ 1246 re double p=suf[sa[k]][lim+1]; 1247 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1248 for(re int q=0;q<=16;++q){ 1249 re double gl=g[abs(val)][q]; 1250 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1251 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 1252 } 1253 } 1254 } 1255 void sakndw(int id,int lim,int val){ 1256 re int flag=(val<0)?-1:1; 1257 F(i) F(j) F(k) F(l){ 1258 re double p=suf[sa[k]][lim+1]; 1259 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1260 for(re int q=0;q<=16;++q){ 1261 re double gl=g[abs(val)][q]; 1262 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1263 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 1264 } 1265 } 1266 } 1267 void knmidw(int id,int lim,int val){ 1268 re int flag=(val<0)?-1:1; 1269 F(i) F(j) F(k) F(l){ 1270 re double p=suf[kn[l]][lim+1]; 1271 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1272 for(re int q=0;q<=16;++q){ 1273 re double gl=g[abs(val)][q]; 1274 if(i+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1275 else f[id][min(8,i+q*flag)][j][k][l]+=f[id-1][i][j][k][l]*p*gl; 1276 } 1277 } 1278 } 1279 void knspdw(int id,int lim,int val){ 1280 re int flag=(val<0)?-1:1; 1281 F(i) F(j) F(k) F(l){ 1282 re double p=suf[kn[l]][lim+1]; 1283 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1284 for(re int q=0;q<=16;++q){ 1285 re double gl=g[abs(val)][q]; 1286 if(j+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1287 else f[id][i][min(8,j+q*flag)][k][l]+=f[id-1][i][j][k][l]*p*gl; 1288 } 1289 } 1290 } 1291 void knsadw(int id,int lim,int val){ 1292 re int flag=(val<0)?-1:1; 1293 F(i) F(j) F(k) F(l){ 1294 re double p=suf[kn[l]][lim+1]; 1295 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1296 for(re int q=0;q<=16;++q){ 1297 re double gl=g[abs(val)][q]; 1298 if(k+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1299 else f[id][i][j][min(8,k+q*flag)][l]+=f[id-1][i][j][k][l]*p*gl; 1300 } 1301 } 1302 } 1303 void knkndw(int id,int lim,int val){ 1304 re int flag=(val<0)?-1:1; 1305 F(i) F(j) F(k) F(l){ 1306 re double p=suf[kn[l]][lim+1]; 1307 f[id][i][j][k][l]+=f[id-1][i][j][k][l]*(1-p); 1308 for(re int q=0;q<=16;++q){ 1309 re double gl=g[abs(val)][q]; 1310 if(l+q*flag<=0) ANS+=f[id-1][i][j][k][l]*p*gl; 1311 else f[id][i][j][k][min(8,l+q*flag)]+=f[id-1][i][j][k][l]*p*gl; 1312 } 1313 } 1314 } 1315 signed main(){ 1316 scanf("%s%d",s+1,&MI);F(i) mi[i]=s[i]-‘0‘; 1317 scanf("%s%d",s+1,&SP);F(i) sp[i]=s[i]-‘0‘; 1318 scanf("%s%d",s+1,&SA);F(i) sa[i]=s[i]-‘0‘; 1319 scanf("%s%d",s+1,&KN);F(i) kn[i]=s[i]-‘0‘; 1320 f[0][MI][SP][SA][KN]=1.0; 1321 scanf("%d",&n); g[0][0]=1.0; 1322 for(re int i=0;i<8;++i) 1323 for(re int j=0;j<=16;++j){ 1324 g[i+1][j+0]+=g[i][j]*1.0/3.0; 1325 g[i+1][j+1]+=g[i][j]*1.0/3.0; 1326 g[i+1][j+2]+=g[i][j]*1.0/3.0; 1327 } 1328 for(re int i=1;i<=8;++i){ 1329 pre[i][0]=g[i][0]; 1330 for(re int j=1;j<=16;++j) 1331 pre[i][j]=g[i][j]+pre[i][j-1]; 1332 } 1333 for(re int i=8;i>=1;--i){ 1334 suf[i][17]=g[i][17]; 1335 for(re int j=16;j>=0;--j) 1336 suf[i][j]=g[i][j]+suf[i][j+1]; 1337 } 1338 for(re int id=1;id<=n;++id){ 1339 scanf("%s%s",s1+1,s2+1); 1340 if(s2[1]==‘+‘||s2[1]==‘-‘){ 1341 re int val=s2[2]-‘0‘; 1342 if(s2[1]==‘-‘) val=-val; 1343 if(s2[3]==‘?‘){ 1344 re int dat=abs(val); 1345 re int flag=(s2[1]==‘-‘)?-1:1; 1346 for(re int i=0;i<=16;++i){ 1347 if(s1[2]==‘i‘) addmi(id,i*flag,g[dat][i]); 1348 if(s1[2]==‘p‘) addsp(id,i*flag,g[dat][i]); 1349 if(s1[2]==‘a‘) addsa(id,i*flag,g[dat][i]); 1350 if(s1[2]==‘n‘) addkn(id,i*flag,g[dat][i]); 1351 } 1352 } 1353 else{ 1354 if(s1[2]==‘i‘) addmi(id,val,1); 1355 if(s1[2]==‘p‘) addsp(id,val,1); 1356 if(s1[2]==‘a‘) addsa(id,val,1); 1357 if(s1[2]==‘n‘) addkn(id,val,1); 1358 } 1359 continue; 1360 } 1361 else if(s2[1]==‘>‘||s2[1]==‘<‘){ 1362 re int dat; 1363 scanf("%d%s%s",&dat,s3+1,s4+1); 1364 re int val=s4[2]-‘0‘; 1365 re int flag=(s4[1]==‘-‘)?-1:1; 1366 if(s4[3]==‘?‘){ 1367 if(s2[1]==‘>‘&&s2[2]==‘=‘){ 1368 if(s1[2]==‘i‘){ 1369 if(s3[2]==‘i‘) mimiddw(id,dat,val*flag); 1370 if(s3[2]==‘p‘) mispddw(id,dat,val*flag); 1371 if(s3[2]==‘a‘) misaddw(id,dat,val*flag); 1372 if(s3[2]==‘n‘) miknddw(id,dat,val*flag); 1373 continue; 1374 } 1375 if(s1[2]==‘p‘){ 1376 if(s3[2]==‘i‘) spmiddw(id,dat,val*flag); 1377 if(s3[2]==‘p‘) spspddw(id,dat,val*flag); 1378 if(s3[2]==‘a‘) spsaddw(id,dat,val*flag); 1379 if(s3[2]==‘n‘) spknddw(id,dat,val*flag); 1380 continue; 1381 } 1382 if(s1[2]==‘a‘){ 1383 if(s3[2]==‘i‘) samiddw(id,dat,val*flag); 1384 if(s3[2]==‘p‘) saspddw(id,dat,val*flag); 1385 if(s3[2]==‘a‘) sasaddw(id,dat,val*flag); 1386 if(s3[2]==‘n‘) saknddw(id,dat,val*flag); 1387 continue; 1388 } 1389 if(s1[2]==‘n‘){ 1390 if(s3[2]==‘i‘) knmiddw(id,dat,val*flag); 1391 if(s3[2]==‘p‘) knspddw(id,dat,val*flag); 1392 if(s3[2]==‘a‘) knsaddw(id,dat,val*flag); 1393 if(s3[2]==‘n‘) knknddw(id,dat,val*flag); 1394 continue; 1395 } 1396 } 1397 else if(s2[1]==‘<‘&&s2[2]==‘=‘){ 1398 if(s1[2]==‘i‘){ 1399 if(s3[2]==‘i‘) mimixdw(id,dat,val*flag); 1400 if(s3[2]==‘p‘) mispxdw(id,dat,val*flag); 1401 if(s3[2]==‘a‘) misaxdw(id,dat,val*flag); 1402 if(s3[2]==‘n‘) miknxdw(id,dat,val*flag); 1403 continue; 1404 } 1405 if(s1[2]==‘p‘){ 1406 if(s3[2]==‘i‘) spmixdw(id,dat,val*flag); 1407 if(s3[2]==‘p‘) spspxdw(id,dat,val*flag); 1408 if(s3[2]==‘a‘) spsaxdw(id,dat,val*flag); 1409 if(s3[2]==‘n‘) spknxdw(id,dat,val*flag); 1410 continue; 1411 } 1412 if(s1[2]==‘a‘){ 1413 if(s3[2]==‘i‘) samixdw(id,dat,val*flag); 1414 if(s3[2]==‘p‘) saspxdw(id,dat,val*flag); 1415 if(s3[2]==‘a‘) sasaxdw(id,dat,val*flag); 1416 if(s3[2]==‘n‘) saknxdw(id,dat,val*flag); 1417 continue; 1418 } 1419 if(s1[2]==‘n‘){ 1420 if(s3[2]==‘i‘) knmixdw(id,dat,val*flag); 1421 if(s3[2]==‘p‘) knspxdw(id,dat,val*flag); 1422 if(s3[2]==‘a‘) knsaxdw(id,dat,val*flag); 1423 if(s3[2]==‘n‘) knknxdw(id,dat,val*flag); 1424 continue; 1425 } 1426 } 1427 else if(s2[1]==‘>‘){ 1428 if(s1[2]==‘i‘){ 1429 if(s3[2]==‘i‘) mimidw(id,dat,val*flag); 1430 if(s3[2]==‘p‘) mispdw(id,dat,val*flag); 1431 if(s3[2]==‘a‘) misadw(id,dat,val*flag); 1432 if(s3[2]==‘n‘) mikndw(id,dat,val*flag); 1433 continue; 1434 } 1435 if(s1[2]==‘p‘){ 1436 if(s3[2]==‘i‘) spmidw(id,dat,val*flag); 1437 if(s3[2]==‘p‘) spspdw(id,dat,val*flag); 1438 if(s3[2]==‘a‘) spsadw(id,dat,val*flag); 1439 if(s3[2]==‘n‘) spkndw(id,dat,val*flag); 1440 continue; 1441 } 1442 if(s1[2]==‘a‘){ 1443 if(s3[2]==‘i‘) samidw(id,dat,val*flag); 1444 if(s3[2]==‘p‘) saspdw(id,dat,val*flag); 1445 if(s3[2]==‘a‘) sasadw(id,dat,val*flag); 1446 if(s3[2]==‘n‘) sakndw(id,dat,val*flag); 1447 continue; 1448 } 1449 if(s1[2]==‘n‘){ 1450 if(s3[2]==‘i‘) knmidw(id,dat,val*flag); 1451 if(s3[2]==‘p‘) knspdw(id,dat,val*flag); 1452 if(s3[2]==‘a‘) knsadw(id,dat,val*flag); 1453 if(s3[2]==‘n‘) knkndw(id,dat,val*flag); 1454 continue; 1455 } 1456 } 1457 else if(s2[1]==‘<‘){ 1458 if(s1[2]==‘i‘){ 1459 if(s3[2]==‘i‘) mimixw(id,dat,val*flag); 1460 if(s3[2]==‘p‘) mispxw(id,dat,val*flag); 1461 if(s3[2]==‘a‘) misaxw(id,dat,val*flag); 1462 if(s3[2]==‘n‘) miknxw(id,dat,val*flag); 1463 continue; 1464 } 1465 if(s1[2]==‘p‘){ 1466 if(s3[2]==‘i‘) spmixw(id,dat,val*flag); 1467 if(s3[2]==‘p‘) spspxw(id,dat,val*flag); 1468 if(s3[2]==‘a‘) spsaxw(id,dat,val*flag); 1469 if(s3[2]==‘n‘) spknxw(id,dat,val*flag); 1470 continue; 1471 } 1472 if(s1[2]==‘a‘){ 1473 if(s3[2]==‘i‘) samixw(id,dat,val*flag); 1474 if(s3[2]==‘p‘) saspxw(id,dat,val*flag); 1475 if(s3[2]==‘a‘) sasaxw(id,dat,val*flag); 1476 if(s3[2]==‘n‘) saknxw(id,dat,val*flag); 1477 continue; 1478 } 1479 if(s1[2]==‘n‘){ 1480 if(s3[2]==‘i‘) knmixw(id,dat,val*flag); 1481 if(s3[2]==‘p‘) knspxw(id,dat,val*flag); 1482 if(s3[2]==‘a‘) knsaxw(id,dat,val*flag); 1483 if(s3[2]==‘n‘) knknxw(id,dat,val*flag); 1484 continue; 1485 } 1486 } 1487 } 1488 else{ 1489 if(s2[1]==‘>‘&&s2[2]==‘=‘){ 1490 if(s1[2]==‘i‘){ 1491 if(s3[2]==‘i‘) mimidd(id,dat,val*flag); 1492 if(s3[2]==‘p‘) mispdd(id,dat,val*flag); 1493 if(s3[2]==‘a‘) misadd(id,dat,val*flag); 1494 if(s3[2]==‘n‘) mikndd(id,dat,val*flag); 1495 continue; 1496 } 1497 if(s1[2]==‘p‘){ 1498 if(s3[2]==‘i‘) spmidd(id,dat,val*flag); 1499 if(s3[2]==‘p‘) spspdd(id,dat,val*flag); 1500 if(s3[2]==‘a‘) spsadd(id,dat,val*flag); 1501 if(s3[2]==‘n‘) spkndd(id,dat,val*flag); 1502 continue; 1503 } 1504 if(s1[2]==‘a‘){ 1505 if(s3[2]==‘i‘) samidd(id,dat,val*flag); 1506 if(s3[2]==‘p‘) saspdd(id,dat,val*flag); 1507 if(s3[2]==‘a‘) sasadd(id,dat,val*flag); 1508 if(s3[2]==‘n‘) sakndd(id,dat,val*flag); 1509 continue; 1510 } 1511 if(s1[2]==‘n‘){ 1512 if(s3[2]==‘i‘) knmidd(id,dat,val*flag); 1513 if(s3[2]==‘p‘) knspdd(id,dat,val*flag); 1514 if(s3[2]==‘a‘) knsadd(id,dat,val*flag); 1515 if(s3[2]==‘n‘) knkndd(id,dat,val*flag); 1516 continue; 1517 } 1518 } 1519 else if(s2[1]==‘<‘&&s2[2]==‘=‘){ 1520 if(s1[2]==‘i‘){ 1521 if(s3[2]==‘i‘) mimixd(id,dat,val*flag); 1522 if(s3[2]==‘p‘) mispxd(id,dat,val*flag); 1523 if(s3[2]==‘a‘) misaxd(id,dat,val*flag); 1524 if(s3[2]==‘n‘) miknxd(id,dat,val*flag); 1525 continue; 1526 } 1527 if(s1[2]==‘p‘){ 1528 if(s3[2]==‘i‘) spmixd(id,dat,val*flag); 1529 if(s3[2]==‘p‘) spspxd(id,dat,val*flag); 1530 if(s3[2]==‘a‘) spsaxd(id,dat,val*flag); 1531 if(s3[2]==‘n‘) spknxd(id,dat,val*flag); 1532 continue; 1533 } 1534 if(s1[2]==‘a‘){ 1535 if(s3[2]==‘i‘) samixd(id,dat,val*flag); 1536 if(s3[2]==‘p‘) saspxd(id,dat,val*flag); 1537 if(s3[2]==‘a‘) sasaxd(id,dat,val*flag); 1538 if(s3[2]==‘n‘) saknxd(id,dat,val*flag); 1539 continue; 1540 } 1541 if(s1[2]==‘n‘){ 1542 if(s3[2]==‘i‘) knmixd(id,dat,val*flag); 1543 if(s3[2]==‘p‘) knspxd(id,dat,val*flag); 1544 if(s3[2]==‘a‘) knsaxd(id,dat,val*flag); 1545 if(s3[2]==‘n‘) knknxd(id,dat,val*flag); 1546 continue; 1547 } 1548 } 1549 else if(s2[1]==‘>‘){ 1550 if(s1[2]==‘i‘){ 1551 if(s3[2]==‘i‘) mimid(id,dat,val*flag); 1552 if(s3[2]==‘p‘) mispd(id,dat,val*flag); 1553 if(s3[2]==‘a‘) misad(id,dat,val*flag); 1554 if(s3[2]==‘n‘) miknd(id,dat,val*flag); 1555 continue; 1556 } 1557 if(s1[2]==‘p‘){ 1558 if(s3[2]==‘i‘) spmid(id,dat,val*flag); 1559 if(s3[2]==‘p‘) spspd(id,dat,val*flag); 1560 if(s3[2]==‘a‘) spsad(id,dat,val*flag); 1561 if(s3[2]==‘n‘) spknd(id,dat,val*flag); 1562 continue; 1563 } 1564 if(s1[2]==‘a‘){ 1565 if(s3[2]==‘i‘) samid(id,dat,val*flag); 1566 if(s3[2]==‘p‘) saspd(id,dat,val*flag); 1567 if(s3[2]==‘a‘) sasad(id,dat,val*flag); 1568 if(s3[2]==‘n‘) saknd(id,dat,val*flag); 1569 continue; 1570 } 1571 if(s1[2]==‘n‘){ 1572 if(s3[2]==‘i‘) knmid(id,dat,val*flag); 1573 if(s3[2]==‘p‘) knspd(id,dat,val*flag); 1574 if(s3[2]==‘a‘) knsad(id,dat,val*flag); 1575 if(s3[2]==‘n‘) knknd(id,dat,val*flag); 1576 continue; 1577 } 1578 } 1579 else if(s2[1]==‘<‘){ 1580 if(s1[2]==‘i‘){ 1581 if(s3[2]==‘i‘) mimix(id,dat,val*flag); 1582 if(s3[2]==‘p‘) mispx(id,dat,val*flag); 1583 if(s3[2]==‘a‘) misax(id,dat,val*flag); 1584 if(s3[2]==‘n‘) miknx(id,dat,val*flag); 1585 continue; 1586 } 1587 if(s1[2]==‘p‘){ 1588 if(s3[2]==‘i‘) spmix(id,dat,val*flag); 1589 if(s3[2]==‘p‘) spspx(id,dat,val*flag); 1590 if(s3[2]==‘a‘) spsax(id,dat,val*flag); 1591 if(s3[2]==‘n‘) spknx(id,dat,val*flag); 1592 continue; 1593 } 1594 if(s1[2]==‘a‘){ 1595 if(s3[2]==‘i‘) samix(id,dat,val*flag); 1596 if(s3[2]==‘p‘) saspx(id,dat,val*flag); 1597 if(s3[2]==‘a‘) sasax(id,dat,val*flag); 1598 if(s3[2]==‘n‘) saknx(id,dat,val*flag); 1599 continue; 1600 } 1601 if(s1[2]==‘n‘){ 1602 if(s3[2]==‘i‘) knmix(id,dat,val*flag); 1603 if(s3[2]==‘p‘) knspx(id,dat,val*flag); 1604 if(s3[2]==‘a‘) knsax(id,dat,val*flag); 1605 if(s3[2]==‘n‘) knknx(id,dat,val*flag); 1606 continue; 1607 } 1608 } 1609 } 1610 } 1611 } 1612 printf("%.2lf\n",ANS*100.0); 1613 F(i) F(j) F(k) F(l){ 1614 mig[mi[i]]+=f[n][i][j][k][l]; 1615 spe[sp[j]]+=f[n][i][j][k][l]; 1616 san[sa[k]]+=f[n][i][j][k][l]; 1617 kno[kn[l]]+=f[n][i][j][k][l]; 1618 } 1619 F(i) printf("%.2lf ",mig[i]*100.0);puts(""); 1620 F(i) printf("%.2lf ",spe[i]*100.0);puts(""); 1621 F(i) printf("%.2lf ",san[i]*100.0);puts(""); 1622 F(i) printf("%.2lf ",kno[i]*100.0);puts(""); 1623 }
只剩感慨。。(真TM难调)
原文:https://www.cnblogs.com/Hzoi-lyl/p/11743864.html