0000: 23 69 6e 63 6c 75 64 65 20 3c 69 6f 73 74 72 65 #include <iostre
0010: 61 6d 3e 0d 0a 23 69 6e 63 6c 75 64 65 20 3c 73 am>..#include <s
0020: 73 74 72 65 61 6d 3e 0d 0a 23 69 6e 63 6c 75 64 stream>..#includ
0030: 65 20 3c 69 6f 6d 61 6e 69 70 3e 0d 0a 23 69 6e e <iomanip>..#in
0040: 63 6c 75 64 65 20 3c 76 65 63 74 6f 72 3e 0d 0a clude <vector>..
0050: 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 #include <string
0060: 3e 0d 0a 23 69 6e 63 6c 75 64 65 20 3c 6d 61 70 >..#include <map
0070: 3e 0d 0a 23 69 6e 63 6c 75 64 65 20 3c 73 65 74 >..#include <set
0080: 3e 0d 0a 23 69 6e 63 6c 75 64 65 20 3c 61 6c 67 >..#include <alg
0090: 6f 72 69 74 68 6d 3e 0d 0a 23 69 6e 63 6c 75 64 orithm>..#includ
00a0: 65 20 3c 6e 75 6d 65 72 69 63 3e 0d 0a 23 69 6e e <numeric>..#in
00b0: 63 6c 75 64 65 20 3c 69 74 65 72 61 74 6f 72 3e clude <iterator>
00c0: 0d 0a 23 69 6e 63 6c 75 64 65 20 3c 66 75 6e 63 ..#include <func
00d0: 74 69 6f 6e 61 6c 3e 0d 0a 23 69 6e 63 6c 75 64 tional>..#includ
00e0: 65 20 3c 63 6f 6d 70 6c 65 78 3e 0d 0a 23 69 6e e <complex>..#in
00f0: 63 6c 75 64 65 20 3c 71 75 65 75 65 3e 0d 0a 23 clude <queue>..#
0100: 69 6e 63 6c 75 64 65 20 3c 73 74 61 63 6b 3e 0d include <stack>.
0110: 0a 23 69 6e 63 6c 75 64 65 20 3c 63 6d 61 74 68 .#include <cmath
0120: 3e 0d 0a 23 69 6e 63 6c 75 64 65 20 3c 63 61 73 >..#include <cas
0130: 73 65 72 74 3e 0d 0a 23 69 6e 63 6c 75 64 65 20 sert>..#include
0140: 3c 63 73 74 72 69 6e 67 3e 0d 0a 75 73 69 6e 67 <cstring>..using
0150: 20 6e 61 6d 65 73 70 61 63 65 20 73 74 64 3b 0d namespace std;.
0160: 0a 74 79 70 65 64 65 66 20 6c 6f 6e 67 20 6c 6f .typedef long lo
0170: 6e 67 20 4c 4c 3b 0d 0a 74 79 70 65 64 65 66 20 ng LL;..typedef
0180: 63 6f 6d 70 6c 65 78 3c 64 6f 75 62 6c 65 3e 20 complex<double>
0190: 43 4d 50 3b 0d 0a 0d 0a 63 6c 61 73 73 20 43 6f CMP;....class Co
01a0: 6c 6f 72 66 75 6c 4d 61 7a 65 20 7b 20 70 75 62 lorfulMaze { pub
01b0: 6c 69 63 3a 0d 0a 09 64 6f 75 62 6c 65 20 67 65 lic:...double ge
01c0: 74 50 72 6f 62 61 62 69 6c 69 74 79 28 76 65 63 tProbability(vec
01d0: 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20 6d 61 7a tor <string> maz
01e0: 65 2c 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 e, vector <int>
01f0: 74 72 61 70 29 20 0d 0a 09 7b 0d 0a 09 09 72 65 trap) ...{....re
0200: 74 75 72 6e 20 73 6f 6c 76 65 28 6d 61 7a 65 2c turn solve(maze,
0210: 20 74 72 61 70 2c 20 30 29 3b 0d 0a 09 7d 0d 0a trap, 0);...}..
0220: 0d 0a 09 74 79 70 65 64 65 66 20 69 6e 74 20 76 ...typedef int v
0230: 65 72 74 3b 0d 0a 0d 0a 09 64 6f 75 62 6c 65 20 ert;.....double
0240: 73 6f 6c 76 65 28 63 6f 6e 73 74 20 76 65 63 74 solve(const vect
0250: 6f 72 3c 73 74 72 69 6e 67 3e 26 20 6d 61 7a 65 or<string>& maze
0260: 2c 20 63 6f 6e 73 74 20 76 65 63 74 6f 72 3c 69 , const vector<i
0270: 6e 74 3e 26 20 74 72 61 70 2c 20 69 6e 74 20 64 nt>& trap, int d
0280: 61 6d 61 67 65 29 0d 0a 09 7b 0d 0a 09 09 63 6f amage)...{....co
0290: 6e 73 74 20 69 6e 74 20 48 20 3d 20 6d 61 7a 65 nst int H = maze
02a0: 2e 73 69 7a 65 28 29 3b 0d 0a 09 09 63 6f 6e 73 .size();....cons
02b0: 74 20 69 6e 74 20 57 20 3d 20 6d 61 7a 65 5b 30 t int W = maze[0
02c0: 5d 2e 73 69 7a 65 28 29 3b 0d 0a 0d 0a 09 09 2f ].size();....../
02d0: 2f 20 52 5b 69 5d 20 3d 3d 20 6c 69 73 74 20 6f / R[i] == list o
02e0: 66 20 63 65 6c 6c 73 20 63 6f 6c 6f 72 65 64 20 f cells colored
02f0: 27 41 27 2b 69 20 61 6e 64 20 72 65 61 63 68 61 'A'+i and reacha
0300: 62 6c 65 20 66 72 6f 6d 20 27 24 27 0d 0a 09 09 ble from '$'....
0310: 76 65 63 74 6f 72 3c 76 65 72 74 3e 20 52 5b 37 vector<vert> R[7
0320: 5d 3b 0d 0a 09 09 7b 0d 0a 09 09 09 73 74 61 63 ];....{.....stac
0330: 6b 3c 76 65 72 74 3e 20 20 51 3b 0d 0a 09 09 09 k<vert> Q;.....
0340: 76 65 63 74 6f 72 3c 62 6f 6f 6c 3e 20 56 28 48 vector<bool> V(H
0350: 2a 57 29 3b 0d 0a 09 09 09 66 6f 72 28 69 6e 74 *W);.....for(int
0360: 20 79 3d 30 3b 20 79 3c 48 3b 20 2b 2b 79 29 0d y=0; y<H; ++y).
0370: 0a 09 09 09 09 66 6f 72 28 69 6e 74 20 78 3d 30 .....for(int x=0
0380: 3b 20 78 3c 57 3b 20 2b 2b 78 29 0d 0a 09 09 09 ; x<W; ++x).....
0390: 09 09 69 66 28 20 6d 61 7a 65 5b 79 5d 5b 78 5d ..if( maze[y][x]
03a0: 20 3d 3d 20 27 24 27 20 29 0d 0a 09 09 09 09 09 == '$' ).......
03b0: 09 7b 51 2e 70 75 73 68 28 79 2a 57 2b 78 29 3b .{Q.push(y*W+x);
03c0: 20 56 5b 79 2a 57 2b 78 5d 3d 31 3b 7d 0d 0a 0d V[y*W+x]=1;}...
03d0: 0a 09 09 09 77 68 69 6c 65 28 20 21 51 2e 65 6d ....while( !Q.em
03e0: 70 74 79 28 29 20 29 20 7b 0d 0a 09 09 09 09 76 pty() ) {......v
03f0: 65 72 74 20 76 3d 51 2e 74 6f 70 28 29 3b 20 51 ert v=Q.top(); Q
0400: 2e 70 6f 70 28 29 3b 0d 0a 09 09 09 09 69 6e 74 .pop();......int
0410: 20 79 3d 76 2f 57 2c 20 78 3d 76 25 57 3b 0d 0a y=v/W, x=v%W;..
0420: 0d 0a 09 09 09 09 69 6e 74 20 64 79 5b 5d 3d 7b ......int dy[]={
0430: 2d 31 2c 2b 31 2c 30 2c 30 7d 2c 20 64 78 5b 5d -1,+1,0,0}, dx[]
0440: 3d 7b 30 2c 30 2c 2d 31 2c 2b 31 7d 3b 0d 0a 09 ={0,0,-1,+1};...
0450: 09 09 09 66 6f 72 28 69 6e 74 20 69 3d 30 3b 20 ...for(int i=0;
0460: 69 3c 34 3b 20 2b 2b 69 29 20 7b 0d 0a 09 09 09 i<4; ++i) {.....
0470: 09 09 69 6e 74 20 79 79 3d 79 2b 64 79 5b 69 5d ..int yy=y+dy[i]
0480: 2c 20 78 78 3d 78 2b 64 78 5b 69 5d 2c 75 3d 79 , xx=x+dx[i],u=y
0490: 79 2a 57 2b 78 78 3b 0d 0a 09 09 09 09 09 69 66 y*W+xx;.......if
04a0: 28 20 30 3c 3d 79 79 20 26 26 20 79 79 3c 48 20 ( 0<=yy && yy<H
04b0: 26 26 20 30 3c 3d 78 78 20 26 26 20 78 78 3c 57 && 0<=xx && xx<W
04c0: 20 26 26 20 6d 61 7a 65 5b 79 79 5d 5b 78 78 5d && maze[yy][xx]
04d0: 21 3d 27 23 27 20 26 26 20 21 56 5b 75 5d 20 29 !='#' && !V[u] )
04e0: 20 7b 0d 0a 09 09 09 09 09 09 69 66 28 20 6d 61 {........if( ma
04f0: 7a 65 5b 79 79 5d 5b 78 78 5d 3d 3d 27 21 27 20 ze[yy][xx]=='!'
0500: 29 0d 0a 09 09 09 09 09 09 09 72 65 74 75 72 6e ).........return
0510: 20 31 2e 30 3b 0d 0a 09 09 09 09 09 09 56 5b 75 1.0;........V[u
0520: 5d 3d 31 3b 0d 0a 09 09 09 09 09 09 69 66 28 20 ]=1;........if(
0530: 6d 61 7a 65 5b 79 79 5d 5b 78 78 5d 20 3d 3d 20 maze[yy][xx] ==
0540: 27 2e 27 20 29 0d 0a 09 09 09 09 09 09 09 51 2e '.' ).........Q.
0550: 70 75 73 68 28 75 29 3b 0d 0a 09 09 09 09 09 09 push(u);........
0560: 65 6c 73 65 0d 0a 09 09 09 09 09 09 09 52 5b 6d else.........R[m
0570: 61 7a 65 5b 79 79 5d 5b 78 78 5d 2d 27 41 27 5d aze[yy][xx]-'A']
0580: 2e 70 75 73 68 5f 62 61 63 6b 28 75 29 3b 0d 0a .push_back(u);..
0590: 09 09 09 09 09 7d 0d 0a 09 09 09 09 7d 0d 0a 09 .....}......}...
05a0: 09 09 7d 0d 0a 09 09 7d 0d 0a 0d 0a 09 09 64 6f ..}....}......do
05b0: 75 62 6c 65 20 70 4d 61 78 20 3d 20 30 2e 30 3b uble pMax = 0.0;
05c0: 0d 0a 09 09 66 6f 72 28 69 6e 74 20 6b 3d 30 3b ....for(int k=0;
05d0: 20 6b 3c 37 3b 20 2b 2b 6b 29 20 69 66 28 21 52 k<7; ++k) if(!R
05e0: 5b 6b 5d 2e 65 6d 70 74 79 28 29 29 20 7b 0d 0a [k].empty()) {..
05f0: 09 09 09 64 6f 75 62 6c 65 20 70 20 3d 20 30 3b ...double p = 0;
0600: 20 2f 2f 20 70 72 6f 62 2e 20 74 6f 20 73 75 72 // prob. to sur
0610: 76 69 76 65 20 77 68 65 6e 20 79 6f 75 20 66 69 vive when you fi
0620: 72 73 74 20 73 74 65 70 20 69 6e 20 74 68 65 20 rst step in the
0630: 63 6f 6c 6f 72 20 27 41 27 2b 6b 0d 0a 0d 0a 09 color 'A'+k.....
0640: 09 09 76 65 63 74 6f 72 3c 73 74 72 69 6e 67 3e ..vector<string>
0650: 20 6d 20 3d 20 6d 61 7a 65 3b 0d 0a 09 09 09 7b m = maze;.....{
0660: 20 2f 2f 20 74 68 65 20 63 61 73 65 20 69 74 20 // the case it
0670: 77 61 73 20 6e 6f 74 20 61 20 74 72 61 70 0d 0a was not a trap..
0680: 09 09 09 09 66 6f 72 28 69 6e 74 20 79 3d 30 3b ....for(int y=0;
0690: 20 79 3c 48 3b 20 2b 2b 79 29 0d 0a 09 09 09 09 y<H; ++y)......
06a0: 09 66 6f 72 28 69 6e 74 20 78 3d 30 3b 20 78 3c .for(int x=0; x<
06b0: 57 3b 20 2b 2b 78 29 0d 0a 09 09 09 09 09 09 69 W; ++x)........i
06c0: 66 28 6d 61 7a 65 5b 79 5d 5b 78 5d 3d 3d 27 41 f(maze[y][x]=='A
06d0: 27 2b 6b 29 20 20 20 20 6d 5b 79 5d 5b 78 5d 20 '+k) m[y][x]
06e0: 3d 20 27 2e 27 3b 0d 0a 09 09 09 09 09 09 65 6c = '.';........el
06f0: 73 65 20 69 66 28 6d 61 7a 65 5b 79 5d 5b 78 5d se if(maze[y][x]
0700: 3d 3d 27 24 27 29 20 6d 5b 79 5d 5b 78 5d 20 3d =='$') m[y][x] =
0710: 20 22 2e 23 22 5b 64 61 6d 61 67 65 5d 3b 0d 0a ".#"[damage];..
0720: 09 09 09 09 66 6f 72 28 69 6e 74 20 69 3d 30 3b ....for(int i=0;
0730: 20 69 3c 52 5b 6b 5d 2e 73 69 7a 65 28 29 3b 20 i<R[k].size();
0740: 2b 2b 69 29 0d 0a 09 09 09 09 09 6d 5b 52 5b 6b ++i).......m[R[k
0750: 5d 5b 69 5d 2f 57 5d 5b 52 5b 6b 5d 5b 69 5d 25 ][i]/W][R[k][i]%
0760: 57 5d 20 3d 20 27 24 27 3b 0d 0a 09 09 09 09 70 W] = '$';......p
0770: 20 3d 20 28 31 2d 74 72 61 70 5b 6b 5d 2f 31 30 = (1-trap[k]/10
0780: 30 2e 30 29 20 2a 20 73 6f 6c 76 65 28 6d 2c 20 0.0) * solve(m,
0790: 74 72 61 70 2c 20 64 61 6d 61 67 65 29 3b 20 0d trap, damage); .
07a0: 0a 09 09 09 7d 0d 0a 09 09 09 69 66 28 20 64 61 ....}.....if( da
07b0: 6d 61 67 65 20 3d 3d 20 30 20 29 20 7b 20 2f 2f mage == 0 ) { //
07c0: 20 74 68 65 20 63 61 73 65 20 69 74 20 77 61 73 the case it was
07d0: 20 61 20 74 72 61 70 0d 0a 09 09 09 09 66 6f 72 a trap......for
07e0: 28 69 6e 74 20 79 3d 30 3b 20 79 3c 48 3b 20 2b (int y=0; y<H; +
07f0: 2b 79 29 0d 0a 09 09 09 09 09 66 6f 72 28 69 6e +y).......for(in
0800: 74 20 78 3d 30 3b 20 78 3c 57 3b 20 2b 2b 78 29 t x=0; x<W; ++x)
0810: 0d 0a 09 09 09 09 09 09 69 66 28 6d 61 7a 65 5b ........if(maze[
0820: 79 5d 5b 78 5d 3d 3d 27 41 27 2b 6b 20 26 26 20 y][x]=='A'+k &&
0830: 6d 5b 79 5d 5b 78 5d 21 3d 27 24 27 29 20 6d 5b m[y][x]!='$') m[
0840: 79 5d 5b 78 5d 20 3d 20 27 23 27 3b 0d 0a 09 09 y][x] = '#';....
0850: 09 09 70 20 2b 3d 20 28 74 72 61 70 5b 6b 5d 2f ..p += (trap[k]/
0860: 31 30 30 2e 30 29 20 2a 20 73 6f 6c 76 65 28 6d 100.0) * solve(m
0870: 2c 20 74 72 61 70 2c 20 64 61 6d 61 67 65 2b 31 , trap, damage+1
0880: 29 3b 0d 0a 09 09 09 7d 0d 0a 0d 0a 09 09 09 70 );.....}.......p
0890: 4d 61 78 20 3d 20 6d 61 78 28 70 4d 61 78 2c 20 Max = max(pMax,
08a0: 70 29 3b 20 2f 2f 20 74 61 6b 65 20 74 68 65 20 p); // take the
08b0: 6d 61 78 69 6d 75 6d 0d 0a 09 09 7d 0d 0a 09 09 maximum....}....
08c0: 72 65 74 75 72 6e 20 70 4d 61 78 3b 0d 0a 09 7d return pMax;...}
08d0: 0d 0a 7d 3b 0d 0a 0d 0a 2f 2f 20 42 45 47 49 4e ..};....// BEGIN
08e0: 20 43 55 54 20 48 45 52 45 0d 0a 23 69 6e 63 6c CUT HERE..#incl
08f0: 75 64 65 20 3c 63 74 69 6d 65 3e 0d 0a 64 6f 75 ude <ctime>..dou
0900: 62 6c 65 20 73 74 61 72 74 5f 74 69 6d 65 3b 20 ble start_time;
0910: 73 74 72 69 6e 67 20 74 69 6d 65 72 28 29 0d 0a string timer()..
0920: 20 7b 20 6f 73 74 72 69 6e 67 73 74 72 65 61 6d { ostringstream
0930: 20 6f 73 3b 20 6f 73 20 3c 3c 20 22 20 28 22 20 os; os << " ("
0940: 3c 3c 20 69 6e 74 28 28 63 6c 6f 63 6b 28 29 2d << int((clock()-
0950: 73 74 61 72 74 5f 74 69 6d 65 29 2f 43 4c 4f 43 start_time)/CLOC
0960: 4b 53 5f 50 45 52 5f 53 45 43 2a 31 30 30 30 29 KS_PER_SEC*1000)
0970: 20 3c 3c 20 22 20 6d 73 65 63 29 22 3b 20 72 65 << " msec)"; re
0980: 74 75 72 6e 20 6f 73 2e 73 74 72 28 29 3b 20 7d turn os.str(); }
0990: 0d 0a 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e ..template<typen
09a0: 61 6d 65 20 54 3e 20 6f 73 74 72 65 61 6d 26 20 ame T> ostream&
09b0: 6f 70 65 72 61 74 6f 72 3c 3c 28 6f 73 74 72 65 operator<<(ostre
09c0: 61 6d 26 20 6f 73 2c 20 63 6f 6e 73 74 20 76 65 am& os, const ve
09d0: 63 74 6f 72 3c 54 3e 26 20 76 29 0d 0a 20 7b 20 ctor<T>& v).. {
09e0: 6f 73 20 3c 3c 20 22 7b 20 22 3b 0d 0a 20 20 20 os << "{ ";..
09f0: 66 6f 72 28 74 79 70 65 6e 61 6d 65 20 76 65 63 for(typename vec
0a00: 74 6f 72 3c 54 3e 3a 3a 63 6f 6e 73 74 5f 69 74 tor<T>::const_it
0a10: 65 72 61 74 6f 72 20 69 74 3d 76 2e 62 65 67 69 erator it=v.begi
0a20: 6e 28 29 3b 20 69 74 21 3d 76 2e 65 6e 64 28 29 n(); it!=v.end()
0a30: 3b 20 2b 2b 69 74 29 0d 0a 20 20 20 6f 73 20 3c ; ++it).. os <
0a40: 3c 20 27 5c 22 27 20 3c 3c 20 2a 69 74 20 3c 3c < '\"' << *it <<
0a50: 20 27 5c 22 27 20 3c 3c 20 28 69 74 2b 31 3d 3d '\"' << (it+1==
0a60: 76 2e 65 6e 64 28 29 20 3f 20 22 22 20 3a 20 22 v.end() ? "" : "
0a70: 2c 20 22 29 3b 20 6f 73 20 3c 3c 20 22 20 7d 22 , "); os << " }"
0a80: 3b 20 72 65 74 75 72 6e 20 6f 73 3b 20 7d 0d 0a ; return os; }..
0a90: 76 6f 69 64 20 76 65 72 69 66 79 5f 63 61 73 65 void verify_case
0aa0: 28 63 6f 6e 73 74 20 64 6f 75 62 6c 65 26 20 45 (const double& E
0ab0: 78 70 65 63 74 65 64 2c 20 63 6f 6e 73 74 20 64 xpected, const d
0ac0: 6f 75 62 6c 65 26 20 52 65 63 65 69 76 65 64 29 ouble& Received)
0ad0: 20 7b 0d 0a 20 62 6f 6f 6c 20 6f 6b 20 3d 20 28 {.. bool ok = (
0ae0: 61 62 73 28 45 78 70 65 63 74 65 64 20 2d 20 52 abs(Expected - R
0af0: 65 63 65 69 76 65 64 29 20 3c 20 31 65 2d 39 29 eceived) < 1e-9)
0b00: 3b 0d 0a 20 69 66 28 6f 6b 29 20 63 65 72 72 20 ;.. if(ok) cerr
0b10: 3c 3c 20 22 50 41 53 53 45 44 22 20 3c 3c 20 74 << "PASSED" << t
0b20: 69 6d 65 72 28 29 20 3c 3c 20 65 6e 64 6c 3b 20 imer() << endl;
0b30: 20 65 6c 73 65 20 7b 20 63 65 72 72 20 3c 3c 20 else { cerr <<
0b40: 22 46 41 49 4c 45 44 22 20 3c 3c 20 74 69 6d 65 "FAILED" << time
0b50: 72 28 29 20 3c 3c 20 65 6e 64 6c 3b 0d 0a 20 63 r() << endl;.. c
0b60: 65 72 72 20 3c 3c 20 22 5c 74 6f 3a 20 5c 22 22 err << "\to: \""
0b70: 20 3c 3c 20 45 78 70 65 63 74 65 64 20 3c 3c 20 << Expected <<
0b80: 27 5c 22 27 20 3c 3c 20 65 6e 64 6c 20 3c 3c 20 '\"' << endl <<
0b90: 22 5c 74 78 3a 20 5c 22 22 20 3c 3c 20 52 65 63 "\tx: \"" << Rec
0ba0: 65 69 76 65 64 20 3c 3c 20 27 5c 22 27 20 3c 3c eived << '\"' <<
0bb0: 20 65 6e 64 6c 3b 20 7d 20 7d 0d 0a 23 64 65 66 endl; } }..#def
0bc0: 69 6e 65 20 43 41 53 45 28 4e 29 20 7b 63 65 72 ine CASE(N) {cer
0bd0: 72 20 3c 3c 20 22 54 65 73 74 20 43 61 73 65 20 r << "Test Case
0be0: 23 22 20 3c 3c 20 4e 20 3c 3c 20 22 2e 2e 2e 22 #" << N << "..."
0bf0: 20 3c 3c 20 66 6c 75 73 68 3b 20 73 74 61 72 74 << flush; start
0c00: 5f 74 69 6d 65 3d 63 6c 6f 63 6b 28 29 3b 0d 0a _time=clock();..
0c10: 23 64 65 66 69 6e 65 20 45 4e 44 09 20 76 65 72 #define END. ver
0c20: 69 66 79 5f 63 61 73 65 28 5f 2c 20 43 6f 6c 6f ify_case(_, Colo
0c30: 72 66 75 6c 4d 61 7a 65 28 29 2e 67 65 74 50 72 rfulMaze().getPr
0c40: 6f 62 61 62 69 6c 69 74 79 28 6d 61 7a 65 2c 20 obability(maze,
0c50: 74 72 61 70 29 29 3b 7d 0d 0a 69 6e 74 20 6d 61 trap));}..int ma
0c60: 69 6e 28 29 7b 0d 0a 0d 0a 43 41 53 45 28 30 29 in(){....CASE(0)
0c70: 0d 0a 09 73 74 72 69 6e 67 20 6d 61 7a 65 5f 5b ...string maze_[
0c80: 5d 20 3d 20 7b 20 22 2e 24 2e 22 2c 0d 0a 20 20 ] = { ".$.",..
0c90: 22 41 23 42 22 2c 0d 0a 20 20 22 41 23 42 22 2c "A#B",.. "A#B",
0ca0: 0d 0a 20 20 22 2e 21 2e 22 20 7d 3b 0d 0a 09 20 .. ".!." };...
0cb0: 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e vector <string>
0cc0: 20 6d 61 7a 65 28 6d 61 7a 65 5f 2c 20 6d 61 7a maze(maze_, maz
0cd0: 65 5f 2b 73 69 7a 65 6f 66 28 6d 61 7a 65 5f 29 e_+sizeof(maze_)
0ce0: 2f 73 69 7a 65 6f 66 28 2a 6d 61 7a 65 5f 29 29 /sizeof(*maze_))
0cf0: 3b 20 0d 0a 09 69 6e 74 20 74 72 61 70 5f 5b 5d ; ...int trap_[]
0d00: 20 3d 20 7b 20 35 30 2c 20 34 30 2c 20 30 2c 20 = { 50, 40, 0,
0d10: 30 2c 20 30 2c 20 30 2c 20 30 20 7d 3b 0d 0a 09 0, 0, 0, 0 };...
0d20: 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 74 vector <int> t
0d30: 72 61 70 28 74 72 61 70 5f 2c 20 74 72 61 70 5f rap(trap_, trap_
0d40: 2b 73 69 7a 65 6f 66 28 74 72 61 70 5f 29 2f 73 +sizeof(trap_)/s
0d50: 69 7a 65 6f 66 28 2a 74 72 61 70 5f 29 29 3b 20 izeof(*trap_));
0d60: 0d 0a 09 64 6f 75 62 6c 65 20 5f 20 3d 20 30 2e ...double _ = 0.
0d70: 38 3b 20 0d 0a 45 4e 44 0d 0a 43 41 53 45 28 31 8; ..END..CASE(1
0d80: 29 0d 0a 09 73 74 72 69 6e 67 20 6d 61 7a 65 5f )...string maze_
0d90: 5b 5d 20 3d 20 7b 20 22 2e 24 2e 22 2c 0d 0a 20 [] = { ".$.",..
0da0: 20 22 41 23 42 22 2c 0d 0a 20 20 22 41 23 43 22 "A#B",.. "A#C"
0db0: 2c 0d 0a 20 20 22 2e 21 2e 22 20 7d 3b 0d 0a 09 ,.. ".!." };...
0dc0: 20 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e 67 vector <string
0dd0: 3e 20 6d 61 7a 65 28 6d 61 7a 65 5f 2c 20 6d 61 > maze(maze_, ma
0de0: 7a 65 5f 2b 73 69 7a 65 6f 66 28 6d 61 7a 65 5f ze_+sizeof(maze_
0df0: 29 2f 73 69 7a 65 6f 66 28 2a 6d 61 7a 65 5f 29 )/sizeof(*maze_)
0e00: 29 3b 20 0d 0a 09 69 6e 74 20 74 72 61 70 5f 5b ); ...int trap_[
0e10: 5d 20 3d 20 7b 20 32 30 2c 20 37 30 2c 20 34 30 ] = { 20, 70, 40
0e20: 2c 20 30 2c 20 30 2c 20 30 2c 20 30 20 7d 3b 0d , 0, 0, 0, 0 };.
0e30: 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e .. vector <int>
0e40: 20 74 72 61 70 28 74 72 61 70 5f 2c 20 74 72 61 trap(trap_, tra
0e50: 70 5f 2b 73 69 7a 65 6f 66 28 74 72 61 70 5f 29 p_+sizeof(trap_)
0e60: 2f 73 69 7a 65 6f 66 28 2a 74 72 61 70 5f 29 29 /sizeof(*trap_))
0e70: 3b 20 0d 0a 09 64 6f 75 62 6c 65 20 5f 20 3d 20 ; ...double _ =
0e80: 30 2e 38 36 3b 20 0d 0a 45 4e 44 0d 0a 43 41 53 0.86; ..END..CAS
0e90: 45 28 32 29 0d 0a 09 73 74 72 69 6e 67 20 6d 61 E(2)...string ma
0ea0: 7a 65 5f 5b 5d 20 3d 20 7b 20 22 24 41 23 22 2c ze_[] = { "$A#",
0eb0: 0d 0a 20 20 22 2e 23 2e 22 2c 0d 0a 20 20 22 23 .. ".#.",.. "#
0ec0: 42 21 22 20 7d 3b 0d 0a 09 20 20 76 65 63 74 6f B!" };... vecto
0ed0: 72 20 3c 73 74 72 69 6e 67 3e 20 6d 61 7a 65 28 r <string> maze(
0ee0: 6d 61 7a 65 5f 2c 20 6d 61 7a 65 5f 2b 73 69 7a maze_, maze_+siz
0ef0: 65 6f 66 28 6d 61 7a 65 5f 29 2f 73 69 7a 65 6f eof(maze_)/sizeo
0f00: 66 28 2a 6d 61 7a 65 5f 29 29 3b 20 0d 0a 09 69 f(*maze_)); ...i
0f10: 6e 74 20 74 72 61 70 5f 5b 5d 20 3d 20 7b 20 31 nt trap_[] = { 1
0f20: 30 2c 20 31 30 2c 20 31 30 2c 20 31 30 2c 20 31 0, 10, 10, 10, 1
0f30: 30 2c 20 31 30 2c 20 31 30 20 7d 3b 0d 0a 09 20 0, 10, 10 };...
0f40: 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 74 72 vector <int> tr
0f50: 61 70 28 74 72 61 70 5f 2c 20 74 72 61 70 5f 2b ap(trap_, trap_+
0f60: 73 69 7a 65 6f 66 28 74 72 61 70 5f 29 2f 73 69 sizeof(trap_)/si
0f70: 7a 65 6f 66 28 2a 74 72 61 70 5f 29 29 3b 20 0d zeof(*trap_)); .
0f80: 0a 09 64 6f 75 62 6c 65 20 5f 20 3d 20 30 2e 30 ..double _ = 0.0
0f90: 3b 20 0d 0a 45 4e 44 0d 0a 43 41 53 45 28 33 29 ; ..END..CASE(3)
0fa0: 0d 0a 09 73 74 72 69 6e 67 20 6d 61 7a 65 5f 5b ...string maze_[
0fb0: 5d 20 3d 20 7b 20 22 24 41 2e 2e 22 2c 0d 0a 20 ] = { "$A..",..
0fc0: 20 22 23 23 2e 41 22 2c 0d 0a 20 20 22 2e 2e 42 "##.A",.. "..B
0fd0: 21 22 20 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 !" };... vector
0fe0: 20 3c 73 74 72 69 6e 67 3e 20 6d 61 7a 65 28 6d <string> maze(m
0ff0: 61 7a 65 5f 2c 20 6d 61 7a 65 5f 2b 73 69 7a 65 aze_, maze_+size
1000: 6f 66 28 6d 61 7a 65 5f 29 2f 73 69 7a 65 6f 66 of(maze_)/sizeof
1010: 28 2a 6d 61 7a 65 5f 29 29 3b 20 0d 0a 09 69 6e (*maze_)); ...in
1020: 74 20 74 72 61 70 5f 5b 5d 20 3d 20 7b 20 35 30 t trap_[] = { 50
1030: 2c 20 35 30 2c 20 30 2c 20 30 2c 20 30 2c 20 30 , 50, 0, 0, 0, 0
1040: 2c 20 30 20 7d 3b 0d 0a 09 20 20 76 65 63 74 6f , 0 };... vecto
1050: 72 20 3c 69 6e 74 3e 20 74 72 61 70 28 74 72 61 r <int> trap(tra
1060: 70 5f 2c 20 74 72 61 70 5f 2b 73 69 7a 65 6f 66 p_, trap_+sizeof
1070: 28 74 72 61 70 5f 29 2f 73 69 7a 65 6f 66 28 2a (trap_)/sizeof(*
1080: 74 72 61 70 5f 29 29 3b 20 0d 0a 09 64 6f 75 62 trap_)); ...doub
1090: 6c 65 20 5f 20 3d 20 30 2e 37 35 3b 20 0d 0a 45 le _ = 0.75; ..E
10a0: 4e 44 0d 0a 43 41 53 45 28 34 29 0d 0a 09 73 74 ND..CASE(4)...st
10b0: 72 69 6e 67 20 6d 61 7a 65 5f 5b 5d 20 3d 20 7b ring maze_[] = {
10c0: 20 22 24 43 2e 2e 22 2c 0d 0a 20 20 22 23 23 2e "$C..",.. "##.
10d0: 41 22 2c 0d 0a 20 20 22 2e 2e 42 21 22 20 7d 3b A",.. "..B!" };
10e0: 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72 ... vector <str
10f0: 69 6e 67 3e 20 6d 61 7a 65 28 6d 61 7a 65 5f 2c ing> maze(maze_,
1100: 20 6d 61 7a 65 5f 2b 73 69 7a 65 6f 66 28 6d 61 maze_+sizeof(ma
1110: 7a 65 5f 29 2f 73 69 7a 65 6f 66 28 2a 6d 61 7a ze_)/sizeof(*maz
1120: 65 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 74 72 61 e_)); ...int tra
1130: 70 5f 5b 5d 20 3d 20 7b 20 35 30 2c 20 35 30 2c p_[] = { 50, 50,
1140: 20 31 30 30 2c 20 30 2c 20 30 2c 20 30 2c 20 30 100, 0, 0, 0, 0
1150: 20 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c };... vector <
1160: 69 6e 74 3e 20 74 72 61 70 28 74 72 61 70 5f 2c int> trap(trap_,
1170: 20 74 72 61 70 5f 2b 73 69 7a 65 6f 66 28 74 72 trap_+sizeof(tr
1180: 61 70 5f 29 2f 73 69 7a 65 6f 66 28 2a 74 72 61 ap_)/sizeof(*tra
1190: 70 5f 29 29 3b 20 0d 0a 09 64 6f 75 62 6c 65 20 p_)); ...double
11a0: 5f 20 3d 20 30 2e 35 3b 20 0d 0a 45 4e 44 0d 0a _ = 0.5; ..END..
11b0: 43 41 53 45 28 35 29 0d 0a 09 73 74 72 69 6e 67 CASE(5)...string
11c0: 20 6d 61 7a 65 5f 5b 5d 20 3d 20 7b 20 22 2e 24 maze_[] = { ".$
11d0: 2e 44 2e 45 2e 46 2e 47 2e 21 2e 22 20 7d 3b 0d .D.E.F.G.!." };.
11e0: 0a 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72 69 .. vector <stri
11f0: 6e 67 3e 20 6d 61 7a 65 28 6d 61 7a 65 5f 2c 20 ng> maze(maze_,
1200: 6d 61 7a 65 5f 2b 73 69 7a 65 6f 66 28 6d 61 7a maze_+sizeof(maz
1210: 65 5f 29 2f 73 69 7a 65 6f 66 28 2a 6d 61 7a 65 e_)/sizeof(*maze
1220: 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 74 72 61 70 _)); ...int trap
1230: 5f 5b 5d 20 3d 20 7b 20 31 30 2c 20 32 30 2c 20 _[] = { 10, 20,
1240: 33 30 2c 20 34 30 2c 20 35 30 2c 20 36 30 2c 20 30, 40, 50, 60,
1250: 37 30 20 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 70 };... vector
1260: 20 3c 69 6e 74 3e 20 74 72 61 70 28 74 72 61 70 <int> trap(trap
1270: 5f 2c 20 74 72 61 70 5f 2b 73 69 7a 65 6f 66 28 _, trap_+sizeof(
1280: 74 72 61 70 5f 29 2f 73 69 7a 65 6f 66 28 2a 74 trap_)/sizeof(*t
1290: 72 61 70 5f 29 29 3b 20 0d 0a 09 64 6f 75 62 6c rap_)); ...doubl
12a0: 65 20 5f 20 3d 20 30 2e 32 33 34 30 30 30 30 30 e _ = 0.23400000
12b0: 30 30 30 30 30 30 30 30 34 3b 20 0d 0a 45 4e 44 000000004; ..END
12c0: 0d 0a 43 41 53 45 28 36 29 0d 0a 09 73 74 72 69 ..CASE(6)...stri
12d0: 6e 67 20 6d 61 7a 65 5f 5b 5d 20 3d 20 7b 20 22 ng maze_[] = { "
12e0: 43 43 2e 2e 2e 41 41 22 2c 0d 0a 20 20 22 43 23 CC...AA",.. "C#
12f0: 23 2e 23 23 41 22 2c 0d 0a 20 20 22 21 2e 45 2e #.##A",.. "!.E.
1300: 45 2e 24 22 2c 0d 0a 20 20 22 44 23 23 2e 23 23 E.$",.. "D##.##
1310: 42 22 2c 0d 0a 20 20 22 44 44 2e 2e 2e 42 42 22 B",.. "DD...BB"
1320: 20 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c };... vector <
1330: 73 74 72 69 6e 67 3e 20 6d 61 7a 65 28 6d 61 7a string> maze(maz
1340: 65 5f 2c 20 6d 61 7a 65 5f 2b 73 69 7a 65 6f 66 e_, maze_+sizeof
1350: 28 6d 61 7a 65 5f 29 2f 73 69 7a 65 6f 66 28 2a (maze_)/sizeof(*
1360: 6d 61 7a 65 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 maze_)); ...int
1370: 74 72 61 70 5f 5b 5d 20 3d 20 7b 20 39 30 2c 20 trap_[] = { 90,
1380: 39 30 2c 20 32 35 2c 20 35 30 2c 20 37 35 2c 20 90, 25, 50, 75,
1390: 30 2c 20 30 20 7d 3b 0d 0a 09 20 20 76 65 63 74 0, 0 };... vect
13a0: 6f 72 20 3c 69 6e 74 3e 20 74 72 61 70 28 74 72 or <int> trap(tr
13b0: 61 70 5f 2c 20 74 72 61 70 5f 2b 73 69 7a 65 6f ap_, trap_+sizeo
13c0: 66 28 74 72 61 70 5f 29 2f 73 69 7a 65 6f 66 28 f(trap_)/sizeof(
13d0: 2a 74 72 61 70 5f 29 29 3b 20 0d 0a 09 64 6f 75 *trap_)); ...dou
13e0: 62 6c 65 20 5f 20 3d 20 30 2e 38 31 32 35 3b 20 ble _ = 0.8125;
13f0: 0d 0a 45 4e 44 0d 0a 2f 2a 0d 0a 43 41 53 45 28 ..END../*..CASE(
1400: 37 29 0d 0a 09 73 74 72 69 6e 67 20 6d 61 7a 65 7)...string maze
1410: 5f 5b 5d 20 3d 20 7b 22 23 42 47 47 43 41 47 23 _[] = {"#BGGCAG#
1420: 42 23 23 45 46 45 42 46 43 42 47 46 44 23 45 23 B##EFEBFCBGFD#E#
1430: 23 46 41 23 23 42 42 46 23 42 43 41 44 41 46 47 #FA##BBF#BCADAFG
1440: 47 23 43 44 23 41 47 46 41 44 22 2c 20 22 23 43 G#CD#AGFAD", "#C
1450: 47 45 47 42 46 46 23 47 45 43 44 43 46 46 23 46 GEGBFF#GECDCFF#F
1460: 42 44 44 41 41 47 23 44 43 43 42 42 42 23 43 43 BDDAAG#DCCBBB#CC
1470: 23 42 47 43 42 44 44 23 23 41 45 44 41 41 47 23 #BGCBDD##AEDAAG#
1480: 22 2c 20 22 45 23 23 45 23 47 45 42 43 23 43 43 ", "E##E#GEBC#CC
1490: 23 47 47 41 45 44 45 43 42 42 41 23 42 45 23 45 #GGAEDECBBA#BE#E
14a0: 43 45 23 46 41 47 45 42 46 47 44 23 42 43 41 44 CE#FAGEBFGD#BCAD
14b0: 47 46 23 23 44 23 22 2c 20 22 44 42 23 23 42 44 GF##D#", "DB##BD
14c0: 43 41 42 42 42 41 44 41 46 47 45 44 45 45 46 42 CABBBADAFGEDEEFB
14d0: 45 46 46 45 47 45 41 47 46 42 45 46 47 44 41 23 EFFEGEAGFBEFGDA#
14e0: 43 45 23 41 46 41 23 44 46 23 44 44 22 2c 20 22 CE#AFA#DF#DD", "
14f0: 47 45 47 47 23 23 41 41 23 47 41 45 23 23 44 44 GEGG##AA#GAE##DD
1500: 45 46 47 46 41 23 43 45 41 45 47 23 42 42 46 47 EFGFA#CEAEG#BBFG
1510: 42 42 41 44 42 47 43 45 44 42 41 42 43 42 47 46 BBADBGCEDBABCBGF
1520: 45 46 22 2c 20 22 44 43 47 45 43 45 44 45 43 23 EF", "DCGECEDEC#
1530: 45 23 23 42 42 42 45 47 47 46 44 44 46 23 43 23 E##BBBEGGFDDF#C#
1540: 23 44 43 23 45 46 43 46 23 45 45 23 46 43 41 47 #DC#EFCF#EE#FCAG
1550: 42 47 41 41 47 46 45 46 22 2c 20 22 47 43 41 46 BGAAGFEF", "GCAF
1560: 43 46 45 47 44 46 43 43 43 23 23 43 47 46 46 23 CFEGDFCCC##CGFF#
1570: 41 23 42 41 46 45 41 44 23 44 23 46 43 23 44 23 A#BAFEAD#D#FC#D#
1580: 23 44 41 41 44 41 46 23 42 23 44 45 45 45 22 2c #DAADAF#B#DEEE",
1590: 20 22 43 23 47 23 23 23 42 44 23 46 42 47 23 45 "C#G###BD#FBG#E
15a0: 23 44 23 23 23 47 43 47 47 23 47 47 46 42 44 23 #D###GCGG#GGFBD#
15b0: 45 45 47 42 45 23 42 43 45 23 46 46 23 23 41 45 EEGBE#BCE#FF##AE
15c0: 44 45 45 23 22 2c 20 22 43 44 41 23 23 41 47 42 DEE#", "CDA##AGB
15d0: 44 46 44 45 23 46 44 23 41 43 43 43 23 47 44 42 DFDE#FD#ACCC#GDB
15e0: 41 42 46 23 43 43 23 42 23 41 45 42 46 43 46 47 ABF#CC#B#AEBFCFG
15f0: 23 47 46 41 43 42 41 23 41 42 22 2c 20 22 41 41 #GFACBA#AB", "AA
1600: 23 43 44 46 43 41 43 41 46 45 45 45 41 23 41 42 #CDFCACAFEEEA#AB
1610: 41 46 44 46 45 47 41 45 23 46 41 44 42 46 41 45 AFDFEGAE#FADBFAE
1620: 43 42 42 41 46 23 23 42 47 47 44 42 45 46 44 46 CBBAF##BGGDBEFDF
1630: 22 2c 20 22 46 41 42 47 44 44 45 42 44 44 43 41 ", "FABGDDEBDDCA
1640: 44 41 43 23 45 43 41 47 23 23 43 46 44 45 41 23 DAC#ECAG##CFDEA#
1650: 46 46 41 23 44 41 41 23 43 41 42 43 47 42 46 43 FFA#DAA#CABCGBFC
1660: 46 41 23 23 23 41 22 2c 20 22 21 46 43 46 47 23 FA###A", "!FCFG#
1670: 46 41 43 43 23 47 41 42 41 23 43 47 42 46 43 42 FACC#GABA#CGBFCB
1680: 43 23 42 47 47 44 43 41 46 44 44 43 46 44 47 41 C#BGGDCAFDDCFDGA
1690: 44 45 47 44 47 41 42 23 46 23 41 47 22 2c 20 22 DEGDGAB#F#AG", "
16a0: 43 44 45 41 45 23 45 23 44 45 44 44 44 47 46 45 CDEAE#E#DEDDDGFE
16b0: 46 45 45 23 44 44 44 42 43 44 44 46 46 23 23 23 FEE#DDDBCDDFF###
16c0: 23 46 41 47 23 46 42 23 47 23 47 42 23 23 23 45 #FAG#FB#G#GB###E
16d0: 46 43 22 2c 20 22 23 41 46 23 23 42 23 42 47 44 FC", "#AF##B#BGD
16e0: 23 45 23 47 47 45 45 45 43 23 23 46 42 45 47 42 #E#GGEEEC##FBEGB
16f0: 47 23 44 47 44 43 42 42 46 42 45 47 41 46 23 23 G#DGDCBBFBEGAF##
1700: 41 44 47 47 41 23 47 47 22 2c 20 22 47 42 42 45 ADGGA#GG", "GBBE
1710: 44 41 46 44 46 46 43 47 23 47 41 44 41 43 43 43 DAFDFFCG#GADACCC
1720: 23 23 23 45 44 46 43 45 23 47 42 46 44 23 42 42 ###EDFCE#GBFD#BB
1730: 41 45 41 46 43 23 42 45 44 47 41 46 42 41 22 2c AEAFC#BEDGAFBA",
1740: 20 22 47 23 46 46 45 46 23 45 46 45 45 47 44 41 "G#FFEF#EFEEGDA
1750: 44 41 43 23 42 41 23 44 43 42 23 45 47 23 47 41 DAC#BA#DCB#EG#GA
1760: 44 45 23 23 41 42 41 45 46 43 47 44 44 23 23 42 DE##ABAEFCGDD##B
1770: 42 23 23 42 22 2c 20 22 42 46 23 43 23 23 42 42 B##B", "BF#C##BB
1780: 43 43 43 41 45 44 43 44 23 23 46 41 23 41 43 41 CCCAEDCD##FA#ACA
1790: 23 46 43 46 41 23 45 44 47 41 47 45 46 45 43 43 #FCFA#EDGAGEFECC
17a0: 42 42 47 46 43 47 44 45 45 42 22 2c 20 22 44 45 BBGFCGDEEB", "DE
17b0: 23 46 45 44 46 46 44 44 43 42 41 23 41 44 23 47 #FEDFFDDCBA#AD#G
17c0: 44 41 45 23 42 47 41 45 47 45 42 46 23 47 45 44 DAE#BGAEGEBF#GED
17d0: 47 43 46 23 44 41 43 41 23 44 44 42 43 47 41 23 GCF#DACA#DDBCGA#
17e0: 22 2c 20 22 47 41 45 42 46 43 45 46 23 23 45 23 ", "GAEBFCEF##E#
17f0: 45 46 43 23 42 46 43 23 47 43 47 45 46 41 44 23 EFC#BFC#GCGEFAD#
1800: 47 44 42 23 44 47 23 46 42 44 44 23 46 41 47 23 GDB#DG#FBDD#FAG#
1810: 23 41 42 45 45 44 22 2c 20 22 47 46 47 44 46 44 #ABEED", "GFGDFD
1820: 44 45 46 41 47 45 42 43 42 42 23 44 43 41 23 23 DEFAGEBCBB#DCA##
1830: 46 45 45 41 23 47 41 42 47 42 42 44 23 46 45 42 FEEA#GABGBBD#FEB
1840: 44 45 43 46 23 23 41 23 42 44 23 46 22 2c 20 22 DECF##A#BD#F", "
1850: 23 23 42 47 41 44 46 43 41 23 23 42 23 23 45 42 ##BGADFCA##B##EB
1860: 45 42 41 44 41 44 43 43 46 42 44 45 46 41 46 23 EBADADCCFBDEFAF#
1870: 43 23 47 47 41 41 44 45 23 44 23 23 41 43 47 46 C#GGAADE#D##ACGF
1880: 23 43 22 2c 20 22 45 43 46 23 23 44 43 43 44 45 #C", "ECF##DCCDE
1890: 47 43 47 23 43 23 43 47 23 45 47 45 23 42 23 23 GCG#C#CG#EGE#B##
18a0: 41 44 44 23 41 44 41 23 42 47 43 41 44 45 43 45 ADD#ADA#BGCADECE
18b0: 43 42 44 23 44 44 23 42 22 2c 20 22 47 44 46 45 CBD#DD#B", "GDFE
18c0: 41 45 42 47 23 23 47 41 47 42 42 46 42 45 43 47 AEBG##GAGBBFBECG
18d0: 43 42 45 41 43 42 23 23 47 44 44 46 47 47 41 45 CBEACB##GDDFGGAE
18e0: 46 45 42 43 43 45 41 43 44 41 45 23 41 23 22 2c FEBCCEACDAE#A#",
18f0: 20 22 42 23 47 23 44 23 42 41 42 45 44 47 42 43 "B#G#D#BABEDGBC
1900: 23 42 43 42 46 43 23 44 47 45 42 45 23 42 23 42 #BCBFC#DGEBE#B#B
1910: 43 44 42 23 43 42 42 44 42 41 41 41 46 23 23 23 CDB#CBBDBAAAF###
1920: 46 44 23 46 22 2c 20 22 45 46 44 43 46 41 47 47 FD#F", "EFDCFAGG
1930: 23 47 42 23 23 42 45 44 47 46 46 23 42 42 43 46 #GB##BEDGFF#BBCF
1940: 23 42 45 44 43 41 42 43 45 46 43 47 45 44 23 45 #BEDCABCEFCGED#E
1950: 46 41 42 42 42 43 47 42 43 42 22 2c 20 22 23 47 FABBBCGBCB", "#G
1960: 45 42 23 41 43 45 43 44 43 43 46 47 46 47 44 47 EB#ACECDCCFGFGDG
1970: 41 42 41 43 43 47 23 46 47 41 41 47 47 44 23 45 ABACCG#FGAAGGD#E
1980: 44 23 23 46 45 46 42 44 45 46 23 43 23 46 44 45 D##FEFBDEF#C#FDE
1990: 22 2c 20 22 23 42 47 45 46 45 47 23 43 44 47 42 ", "#BGEFEG#CDGB
19a0: 46 42 46 44 45 43 23 44 47 46 46 42 23 42 23 47 FBFDEC#DGFFB#B#G
19b0: 42 46 47 42 45 47 46 23 23 23 43 44 42 44 45 41 BFGBEGF###CDBDEA
19c0: 23 23 42 45 23 46 22 2c 20 22 43 43 47 42 43 47 ##BE#F", "CCGBCG
19d0: 46 23 45 23 42 42 45 46 46 23 23 23 47 45 44 23 F#E#BBEFF###GED#
19e0: 44 45 45 45 23 23 45 23 42 23 45 45 47 23 46 41 DEEE##E#B#EEG#FA
19f0: 23 47 42 43 45 47 42 47 47 43 45 46 22 2c 20 22 #GBCEGBGGCEF", "
1a00: 41 23 23 44 41 23 41 23 42 41 44 47 23 44 44 46 A##DA#A#BADG#DDF
1a10: 23 45 43 23 42 41 42 44 45 23 43 41 44 23 44 46 #EC#BABDE#CAD#DF
1a20: 42 23 47 46 42 41 45 42 43 47 41 43 47 43 41 23 B#GFBAEBCGACGCA#
1a30: 42 23 22 2c 20 22 44 42 23 23 23 42 41 44 23 46 B#", "DB###BAD#F
1a40: 44 43 47 43 44 23 45 42 47 47 45 45 47 46 23 44 DCGCD#EBGGEEGF#D
1a50: 41 46 47 44 45 43 23 46 43 43 41 45 46 44 42 43 AFGDEC#FCCAEFDBC
1a60: 44 46 41 23 23 23 42 42 22 2c 20 22 23 44 43 45 DFA###BB", "#DCE
1a70: 45 45 45 41 42 47 23 47 46 41 44 42 44 46 44 42 EEEABG#GFADBDFDB
1a80: 41 42 45 47 44 41 45 46 45 43 23 44 23 46 23 41 ABEGDAEFEC#D#F#A
1a90: 44 45 43 42 45 47 23 43 46 45 44 44 23 23 22 2c DECBEG#CFEDD##",
1aa0: 20 22 23 43 44 23 44 44 23 23 44 23 42 41 23 41 "#CD#DD##D#BA#A
1ab0: 42 23 43 42 42 23 44 44 45 44 47 42 44 44 44 44 B#CBB#DDEDGBDDDD
1ac0: 45 43 42 23 44 47 42 23 47 43 45 47 23 41 41 45 ECB#DGB#GCEG#AAE
1ad0: 46 42 46 41 22 2c 20 22 46 42 23 45 23 47 44 43 FBFA", "FB#E#GDC
1ae0: 42 46 46 23 44 47 44 44 44 47 23 44 46 43 43 41 BFF#DGDDDG#DFCCA
1af0: 44 23 23 43 42 46 47 47 46 44 44 47 44 44 46 43 D##CBFGGFDDGDDFC
1b00: 42 47 41 44 41 45 41 43 46 45 22 2c 20 22 42 23 BGADAEACFE", "B#
1b10: 46 46 23 42 45 23 23 47 43 45 41 23 43 44 44 47 FF#BE##GCEA#CDDG
1b20: 45 43 43 41 42 23 42 45 44 46 47 43 46 23 43 45 ECCAB#BEDFGCF#CE
1b30: 45 46 43 23 45 44 44 23 44 45 42 47 41 23 23 23 EFC#EDD#DEBGA###
1b40: 22 2c 20 22 46 45 23 46 47 42 41 23 44 41 46 43 ", "FE#FGBA#DAFC
1b50: 23 44 23 45 43 23 46 45 43 42 45 44 23 42 23 47 #D#EC#FECBED#B#G
1b60: 42 23 23 23 23 41 42 23 44 43 47 45 43 45 23 42 B####AB#DCGECE#B
1b70: 45 47 23 41 47 46 22 2c 20 22 23 23 42 44 43 46 EG#AGF", "##BDCF
1b80: 23 44 42 45 43 23 46 43 46 42 47 45 44 44 41 41 #DBEC#FCFBGEDDAA
1b90: 45 43 46 47 44 47 23 45 46 23 23 23 41 43 45 41 ECFGDG#EF###ACEA
1ba0: 42 47 45 45 47 41 47 23 23 42 41 23 22 2c 20 22 BGEEGAG##BA#", "
1bb0: 46 46 23 45 41 47 47 23 23 41 23 44 42 23 42 42 FF#EAGG##A#DB#BB
1bc0: 45 23 42 46 44 44 43 44 42 44 23 47 47 46 41 45 E#BFDDCDBD#GGFAE
1bd0: 45 44 42 42 45 47 23 44 44 47 23 23 44 46 47 47 EDBBEG#DDG##DFGG
1be0: 43 41 22 2c 20 22 23 23 23 45 23 42 46 47 44 42 CA", "###E#BFGDB
1bf0: 45 41 23 23 45 42 43 42 23 47 47 23 43 45 42 46 EA##EBCB#GG#CEBF
1c00: 47 44 42 41 47 44 46 23 43 43 23 41 42 43 46 47 GDBAGDF#CC#ABCFG
1c10: 41 41 45 46 41 42 47 43 22 2c 20 22 41 47 43 47 AAEFABGC", "AGCG
1c20: 46 42 46 42 46 47 43 45 23 45 43 43 41 42 43 43 FBFBFGCE#ECCABCC
1c30: 42 44 23 44 23 23 42 42 47 41 43 47 43 42 46 41 BD#D##BBGACGCBFA
1c40: 44 23 44 42 44 45 23 43 45 23 45 41 44 23 22 2c D#DBDE#CE#EAD#",
1c50: 20 22 41 47 47 42 47 43 45 41 23 23 41 23 45 46 "AGGBGCEA##A#EF
1c60: 45 46 23 46 47 41 41 46 43 42 23 45 46 23 44 47 EF#FGAAFCB#EF#DG
1c70: 43 46 46 23 43 42 41 41 45 23 47 46 42 23 41 23 CFF#CBAAE#GFB#A#
1c80: 45 46 44 44 22 2c 20 22 42 45 45 44 43 44 44 47 EFDD", "BEEDCDDG
1c90: 46 46 42 23 46 42 23 23 46 45 46 42 46 41 43 42 FFB#FB##FEFBFACB
1ca0: 41 43 41 23 45 47 44 41 45 44 47 47 23 44 23 23 ACA#EGDAEDGG#D##
1cb0: 23 44 45 43 46 45 45 41 44 23 22 2c 20 22 46 44 #DECFEEAD#", "FD
1cc0: 44 42 44 44 47 23 47 47 41 43 47 23 46 24 23 44 DBDDG#GGACG#F$#D
1cd0: 23 46 45 45 43 46 23 23 46 44 43 47 41 46 23 43 #FEECF##FDCGAF#C
1ce0: 47 44 45 47 43 23 47 44 23 23 41 42 46 45 46 23 GDEGC#GD##ABFEF#
1cf0: 22 2c 20 22 47 42 44 44 41 42 23 42 44 44 46 47 ", "GBDDAB#BDDFG
1d00: 44 42 44 44 43 23 42 41 42 42 47 45 47 44 41 41 DBDDC#BABBGEGDAA
1d10: 47 23 46 45 44 43 41 47 47 41 23 46 44 45 43 23 G#FEDCAGGA#FDEC#
1d20: 41 44 47 41 45 44 22 2c 20 22 44 23 42 23 47 42 ADGAED", "D#B#GB
1d30: 41 42 44 23 23 41 45 23 44 44 23 23 41 23 43 47 ABD##AE#DD##A#CG
1d40: 23 44 46 23 41 43 23 41 42 44 44 45 42 47 45 42 #DF#AC#ABDDEBGEB
1d50: 41 23 41 23 46 43 44 43 41 47 44 46 22 2c 20 22 A#A#FCDCAGDF", "
1d60: 44 44 44 23 46 45 46 42 43 42 46 41 44 41 44 45 DDD#FEFBCBFADADE
1d70: 42 45 46 23 46 42 45 46 23 42 41 47 46 42 44 23 BEF#FBEF#BAGFBD#
1d80: 47 45 23 43 46 47 47 23 43 41 42 47 44 47 42 23 GE#CFGG#CABGDGB#
1d90: 43 46 22 2c 20 22 44 47 45 47 44 44 41 45 23 46 CF", "DGEGDDAE#F
1da0: 23 23 43 23 44 44 46 23 44 47 45 41 42 43 47 23 ##C#DDF#DGEABCG#
1db0: 43 46 43 46 23 46 41 42 46 47 23 47 45 42 23 44 CFCF#FABFG#GEB#D
1dc0: 47 23 45 44 45 43 44 45 22 2c 20 22 43 43 46 45 G#EDECDE", "CCFE
1dd0: 45 42 23 41 23 23 23 41 45 42 23 23 47 46 42 23 EB#A###AEB##GFB#
1de0: 46 41 23 45 44 44 23 45 23 46 41 44 23 44 42 23 FA#EDD#E#FAD#DB#
1df0: 45 43 46 44 23 41 23 45 46 41 47 23 23 23 22 2c ECFD#A#EFAG###",
1e00: 20 22 43 42 45 44 45 45 47 23 46 43 23 23 44 23 "CBEDEEG#FC##D#
1e10: 23 46 42 45 45 46 45 45 41 23 23 45 43 41 44 42 #FBEEFEEA##ECADB
1e20: 23 42 46 43 23 42 44 44 44 47 44 44 47 47 45 41 #BFC#BDDDGDDGGEA
1e30: 45 46 45 45 22 2c 20 22 23 44 42 23 47 47 23 43 EFEE", "#DB#GG#C
1e40: 41 23 41 46 42 46 47 43 43 44 47 44 44 23 42 47 A#AFBFGCCDGDD#BG
1e50: 23 41 23 43 23 44 41 23 42 23 43 41 47 45 41 44 #A#C#DA#B#CAGEAD
1e60: 46 23 42 45 41 44 23 45 23 41 22 2c 20 22 46 43 F#BEAD#E#A", "FC
1e70: 23 47 42 46 44 45 46 41 46 43 47 23 43 23 46 23 #GBFDEFAFCG#C#F#
1e80: 45 43 44 42 23 23 41 42 41 23 23 41 45 45 41 43 ECDB##ABA##AEEAC
1e90: 41 41 45 45 41 44 23 41 41 44 23 43 46 46 41 23 AAEEAD#AAD#CFFA#
1ea0: 22 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c "};... vector <
1eb0: 73 74 72 69 6e 67 3e 20 6d 61 7a 65 28 6d 61 7a string> maze(maz
1ec0: 65 5f 2c 20 6d 61 7a 65 5f 2b 73 69 7a 65 6f 66 e_, maze_+sizeof
1ed0: 28 6d 61 7a 65 5f 29 2f 73 69 7a 65 6f 66 28 2a (maze_)/sizeof(*
1ee0: 6d 61 7a 65 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 maze_)); ...int
1ef0: 74 72 61 70 5f 5b 5d 20 3d 20 7b 33 32 2c 20 36 trap_[] = {32, 6
1f00: 35 2c 20 39 31 2c 20 38 31 2c 20 36 32 2c 20 34 5, 91, 81, 62, 4
1f10: 35 2c 20 35 32 7d 3b 0d 0a 09 20 20 76 65 63 74 5, 52};... vect
1f20: 6f 72 20 3c 69 6e 74 3e 20 74 72 61 70 28 74 72 or <int> trap(tr
1f30: 61 70 5f 2c 20 74 72 61 70 5f 2b 73 69 7a 65 6f ap_, trap_+sizeo
1f40: 66 28 74 72 61 70 5f 29 2f 73 69 7a 65 6f 66 28 f(trap_)/sizeof(
1f50: 2a 74 72 61 70 5f 29 29 3b 20 0d 0a 09 64 6f 75 *trap_)); ...dou
1f60: 62 6c 65 20 5f 20 3d 20 30 2e 30 30 39 31 38 35 ble _ = 0.009185
1f70: 34 39 38 34 37 31 39 39 39 39 39 38 3b 20 0d 0a 498471999998; ..
1f80: 45 4e 44 0d 0a 2a 2f 0d 0a 43 41 53 45 28 38 29 END..*/..CASE(8)
1f90: 0d 0a 09 73 74 72 69 6e 67 20 6d 61 7a 65 5f 5b ...string maze_[
1fa0: 5d 20 3d 20 7b 22 23 41 23 23 23 23 2e 46 2e 2e ] = {"#A####.F..
1fb0: 2e 23 23 42 2e 2e 23 2e 42 2e 41 23 2e 2e 2e 2e .##B..#.B.A#....
1fc0: 23 2e 23 2e 2e 2e 2e 2e 2e 23 42 23 23 23 2e 23 #.#......#B###.#
1fd0: 2e 23 2e 23 23 23 23 2e 22 2c 20 22 23 23 23 46 .#.####.", "###F
1fe0: 2e 2e 2e 2e 44 44 23 23 23 2e 23 46 2e 2e 23 2e ....DD###.#F..#.
1ff0: 23 2e 2e 2e 23 2e 23 2e 23 23 2e 2e 23 46 2e 2e #...#.#.##..#F..
2000: 2e 2e 23 23 2e 2e 23 2e 2e 2e 47 2e 23 2e 22 2c ..##..#...G.#.",
2010: 20 22 23 46 2e 44 23 23 2e 2e 44 44 44 2e 2e 2e "#F.D##..DDD...
2020: 2e 23 23 2e 44 2e 2e 44 23 44 46 2e 2e 23 23 2e .##.D..D#DF..##.
2030: 2e 2e 23 46 2e 2e 2e 2e 2e 2e 23 2e 46 23 45 23 ..#F......#.F#E#
2040: 23 2e 23 2e 22 2c 20 22 2e 23 2e 23 2e 45 2e 23 #.#.", ".#.#.E.#
2050: 2e 2e 23 2e 2e 2e 23 2e 23 23 46 23 2e 23 2e 23 ..#...#.##F#.#.#
2060: 2e 23 23 23 46 23 23 46 23 23 2e 2e 23 23 23 23 .###F##F##..####
2070: 23 2e 23 46 2e 2e 23 2e 23 2e 22 2c 20 22 23 23 #.#F..#.#.", "##
2080: 2e 23 46 23 42 2e 2e 42 2e 2e 44 23 23 23 44 23 .#F#B..B..D###D#
2090: 2e 2e 2e 23 2e 44 2e 23 23 46 23 46 23 23 23 23 ...#.D.##F#F####
20a0: 43 41 2e 23 2e 2e 2e 23 23 23 41 23 23 2e 2e 2e CA.#...###A##...
20b0: 22 2c 20 22 43 2e 23 42 23 2e 23 2e 2e 23 23 2e ", "C.#B#.#..##.
20c0: 2e 42 23 23 23 23 2e 23 2e 2e 23 23 2e 23 2e 23 .B####.#..##.#.#
20d0: 2e 23 23 23 23 23 2e 23 2e 2e 2e 47 44 23 2e 44 .#####.#...GD#.D
20e0: 43 23 23 2e 2e 23 22 2c 20 22 23 23 43 23 23 23 C##..#", "##C###
20f0: 43 43 2e 23 43 2e 23 23 2e 2e 2e 23 23 2e 2e 23 CC.#C.##...##..#
2100: 2e 2e 23 23 2e 23 23 2e 45 2e 2e 23 23 2e 23 23 ..##.##.E..##.##
2110: 23 23 23 2e 2e 2e 2e 23 23 2e 2e 2e 22 2c 20 22 ###....##...", "
2120: 2e 23 23 23 45 45 2e 2e 2e 23 23 2e 23 45 23 23 .###EE...##.#E##
2130: 2e 2e 23 23 44 23 44 2e 23 44 23 46 23 23 23 2e ..##D#D.#D#F###.
2140: 2e 23 2e 2e 43 23 23 23 2e 23 2e 2e 43 2e 43 2e .#..C###.#..C.C.
2150: 2e 2e 22 2c 20 22 41 23 23 23 23 2e 23 2e 2e 41 ..", "A####.#..A
2160: 2e 2e 2e 41 23 2e 23 2e 23 23 23 2e 23 2e 41 23 ...A#.#.###.#.A#
2170: 41 23 23 23 23 2e 2e 23 23 23 23 2e 23 42 44 2e A####..####.#BD.
2180: 2e 2e 44 2e 23 2e 23 2e 22 2c 20 22 2e 23 2e 2e ..D.#.#.", ".#..
2190: 45 2e 2e 43 43 2e 23 2e 43 23 2e 23 2e 23 2e 43 E..CC.#.C#.#.#.C
21a0: 2e 2e 2e 43 2e 2e 2e 2e 47 23 2e 2e 47 41 2e 2e ...C....G#..GA..
21b0: 23 23 2e 23 23 23 23 2e 23 2e 2e 2e 23 2e 22 2c ##.####.#...#.",
21c0: 20 22 23 23 23 23 2e 41 2e 23 2e 2e 41 41 23 2e "####.A.#..AA#.
21d0: 2e 23 23 23 2e 23 42 23 47 2e 45 45 23 23 2e 2e .###.#B#G.EE##..
21e0: 2e 23 2e 2e 23 47 23 43 43 23 2e 2e 23 2e 2e 2e .#..#G#CC#..#...
21f0: 2e 2e 23 2e 22 2c 20 22 43 2e 2e 2e 2e 23 2e 2e ..#.", "C....#..
2200: 2e 23 2e 46 23 2e 43 23 43 23 23 23 2e 23 2e 2e .#.F#.C#C###.#..
2210: 2e 2e 2e 46 23 2e 23 2e 2e 23 2e 2e 23 46 23 2e ...F#.#..#..#F#.
2220: 2e 2e 23 23 23 23 23 2e 2e 23 22 2c 20 22 46 2e ..#####..#", "F.
2230: 2e 2e 23 43 23 23 2e 23 44 23 23 23 2e 23 43 23 ..#C##.#D###.#C#
2240: 2e 2e 43 2e 2e 2e 23 43 2e 2e 2e 43 44 2e 44 2e ..C...#C...CD.D.
2250: 2e 2e 44 23 2e 23 44 23 2e 46 2e 2e 2e 2e 23 41 ..D#.#D#.F....#A
2260: 22 2c 20 22 2e 23 23 41 41 23 47 23 23 2e 2e 23 ", ".##AA#G##..#
2270: 47 42 23 23 44 44 23 2e 2e 2e 2e 2e 23 23 2e 44 GB##DD#.....##.D
2280: 44 23 23 2e 2e 23 2e 2e 41 41 23 23 23 2e 41 2e D##..#..AA###.A.
2290: 2e 23 23 23 23 2e 22 2c 20 22 2e 23 23 2e 41 2e .####.", ".##.A.
22a0: 2e 2e 23 2e 41 23 2e 2e 2e 23 2e 2e 23 47 45 23 ..#.A#...#..#GE#
22b0: 23 23 2e 43 23 23 2e 23 2e 23 2e 23 2e 46 2e 23 ##.C##.#.#.#.F.#
22c0: 23 23 2e 2e 2e 2e 2e 2e 23 23 23 23 22 2c 20 22 ##......####", "
22d0: 23 23 23 46 2e 46 23 23 2e 2e 23 23 23 23 23 2e ###F.F##..#####.
22e0: 2e 2e 2e 2e 2e 2e 23 23 46 46 23 46 23 45 23 45 ......##FF#F#E#E
22f0: 2e 23 45 2e 23 2e 2e 2e 23 23 42 23 23 42 23 23 .#E.#...##B##B##
2300: 23 23 22 2c 20 22 23 23 2e 2e 23 42 23 42 41 23 ##", "##..#B#BA#
2310: 23 23 2e 41 2e 2e 23 2e 2e 23 41 2e 23 23 23 23 ##.A..#..#A.####
2320: 2e 47 44 44 2e 2e 23 23 23 23 44 45 23 23 2e 23 .GDD..####DE##.#
2330: 2e 45 2e 23 23 23 23 23 22 2c 20 22 23 44 23 23 .E.#####", "#D##
2340: 23 2e 23 2e 23 2e 23 23 44 2e 2e 23 23 46 42 23 #.#.#.##D..##FB#
2350: 2e 45 23 23 45 44 2e 23 23 2e 2e 44 23 23 2e 23 .E##ED.##..D##.#
2360: 23 23 23 2e 23 2e 2e 2e 2e 23 44 23 2e 23 22 2c ###.#....#D#.#",
2370: 20 22 44 23 2e 2e 23 23 2e 23 23 23 23 23 2e 42 "D#..##.#####.B
2380: 41 2e 23 23 23 41 23 42 2e 23 2e 23 2e 2e 2e 2e A.###A#B.#.#....
2390: 2e 23 23 2e 2e 23 2e 23 23 23 23 2e 23 2e 23 2e .##..#.####.#.#.
23a0: 23 42 2e 2e 22 2c 20 22 42 42 42 23 2e 2e 23 23 #B..", "BBB#..##
23b0: 23 23 2e 2e 44 23 2e 2e 23 2e 23 23 2e 23 2e 2e ##..D#..#.##.#..
23c0: 23 2e 2e 23 2e 2e 2e 23 23 2e 2e 2e 23 2e 2e 23 #..#...##...#..#
23d0: 23 2e 23 44 2e 23 23 2e 41 2e 22 2c 20 22 2e 2e #.#D.##.A.", "..
23e0: 42 2e 42 44 23 45 23 2e 23 2e 45 2e 2e 2e 2e 2e B.BD#E#.#.E.....
23f0: 2e 2e 45 23 23 2e 2e 2e 2e 45 2e 2e 23 2e 2e 23 ..E##....E..#..#
2400: 43 43 2e 43 23 2e 23 23 23 2e 23 2e 23 2e 2e 2e CC.C#.###.#.#...
2410: 22 2c 20 22 23 23 23 23 43 43 2e 2e 2e 2e 23 45 ", "####CC....#E
2420: 23 2e 45 23 23 23 2e 2e 23 23 45 2e 2e 23 45 45 #.E###..##E..#EE
2430: 2e 23 23 23 23 2e 23 2e 2e 2e 2e 23 2e 44 44 43 .####.#....#.DDC
2440: 43 2e 2e 23 23 2e 22 2c 20 22 23 2e 2e 2e 2e 23 C..##.", "#....#
2450: 2e 23 23 45 2e 23 23 23 23 23 2e 2e 23 23 23 23 .##E.#####..####
2460: 2e 2e 45 23 46 23 23 2e 23 2e 2e 46 2e 23 23 41 ..E#F##.#..F.##A
2470: 23 2e 2e 23 2e 2e 23 23 23 2e 23 23 22 2c 20 22 #..#..###.##", "
2480: 2e 23 2e 2e 23 47 23 47 2e 23 2e 2e 23 2e 23 47 .#..#G#G.#..#.#G
2490: 2e 47 2e 23 23 2e 23 23 47 23 47 23 2e 23 23 23 .G.##.##G#G#.###
24a0: 23 2e 47 2e 2e 47 23 2e 2e 47 23 23 23 2e 2e 23 #.G..G#..G###..#
24b0: 47 2e 22 2c 20 22 23 47 23 23 23 2e 23 2e 2e 2e G.", "#G###.#...
24c0: 44 23 44 23 23 23 23 2e 46 23 23 23 23 2e 2e 23 D#D####.F####..#
24d0: 46 23 41 23 23 2e 23 2e 47 2e 23 23 23 44 23 23 F#A##.#.G.###D##
24e0: 2e 2e 23 23 23 41 23 41 22 2c 20 22 2e 23 23 41 ..###A#A", ".##A
24f0: 42 23 23 23 23 2e 46 2e 2e 23 43 2e 43 46 2e 23 B####.F..#C.CF.#
2500: 2e 46 23 23 2e 2e 23 2e 41 41 41 41 2e 42 42 42 .F##..#.AAAA.BBB
2510: 2e 42 2e 23 23 42 23 2e 2e 23 23 2e 2e 2e 22 2c .B.##B#..##...",
2520: 20 22 2e 23 2e 23 46 23 2e 2e 2e 43 23 47 23 2e ".#.#F#...C#G#.
2530: 46 23 2e 47 23 23 47 23 2e 23 23 2e 23 23 2e 2e F#.G##G#.##.##..
2540: 23 23 23 23 2e 47 47 2e 23 2e 47 42 42 23 2e 23 ####.GG.#.GBB#.#
2550: 23 23 2e 42 22 2c 20 22 2e 2e 2e 46 23 23 2e 23 ##.B", "...F##.#
2560: 2e 23 2e 23 2e 46 41 2e 23 41 23 23 2e 2e 23 2e .#.#.FA.#A##..#.
2570: 2e 42 23 41 23 23 23 2e 2e 23 2e 23 23 2e 2e 23 .B#A###..#.##..#
2580: 2e 2e 23 2e 23 41 41 2e 23 2e 22 2c 20 22 23 23 ..#.#AA.#.", "##
2590: 2e 2e 2e 2e 2e 2e 2e 41 45 45 45 23 2e 23 45 2e .......AEEE#.#E.
25a0: 2e 23 2e 2e 2e 23 23 23 42 23 2e 2e 2e 2e 2e 23 .#...###B#.....#
25b0: 2e 2e 2e 2e 2e 23 23 2e 23 2e 2e 42 23 2e 42 46 .....##.#..B#.BF
25c0: 22 2c 20 22 2e 2e 2e 46 2e 2e 23 2e 2e 24 43 23 ", "...F..#..$C#
25d0: 23 23 2e 2e 2e 47 2e 2e 23 23 23 2e 47 23 23 2e ##...G..###.G##.
25e0: 2e 23 2e 2e 47 23 2e 2e 2e 2e 47 2e 23 2e 23 23 .#..G#....G.#.##
25f0: 45 45 23 42 23 2e 22 2c 20 22 46 46 46 46 2e 47 EE#B#.", "FFFF.G
2600: 2e 46 2e 23 2e 46 23 2e 2e 23 2e 23 2e 2e 23 23 .F.#.F#..#.#..##
2610: 43 23 2e 23 2e 2e 41 23 23 2e 23 41 2e 23 23 2e C#.#..A##.#A.##.
2620: 2e 23 41 23 2e 2e 41 23 23 2e 41 2e 22 2c 20 22 .#A#..A##.A.", "
2630: 42 23 2e 42 2e 23 46 23 23 2e 41 2e 2e 2e 23 41 B#.B.#F##.A...#A
2640: 23 44 47 2e 2e 2e 47 2e 23 2e 2e 45 23 23 42 23 #DG...G.#..E##B#
2650: 23 2e 2e 2e 23 2e 23 2e 41 23 43 43 23 23 43 2e #...#.#.A#CC##C.
2660: 2e 23 22 2c 20 22 23 23 44 2e 2e 23 46 2e 47 23 .#", "##D..#F.G#
2670: 23 23 23 2e 2e 47 23 23 47 2e 2e 23 23 2e 23 23 ###..G##G..##.##
2680: 23 23 23 23 23 47 47 23 2e 2e 23 2e 47 47 23 2e #####GG#..#.GG#.
2690: 23 41 23 41 23 23 2e 23 22 2c 20 22 23 42 2e 2e #A#A##.#", "#B..
26a0: 23 2e 23 2e 23 2e 2e 23 23 2e 23 47 23 2e 2e 23 #.#.#..##.#G#..#
26b0: 45 45 45 2e 45 2e 23 23 23 2e 23 23 23 45 47 23 EEE.E.###.###EG#
26c0: 2e 23 23 2e 2e 47 23 23 23 45 23 45 2e 2e 22 2c .##..G###E#E..",
26d0: 20 22 23 23 23 2e 23 2e 45 44 23 2e 2e 44 46 23 "###.#.ED#..DF#
26e0: 23 23 2e 23 2e 23 2e 2e 23 23 2e 23 23 23 23 2e ##.#.#..##.####.
26f0: 2e 2e 23 23 41 45 23 23 23 42 42 23 23 2e 2e 23 ..##AE###BB##..#
2700: 2e 42 23 46 22 2c 20 22 2e 23 46 23 2e 23 2e 2e .B#F", ".#F#.#..
2710: 23 2e 2e 23 23 23 23 23 43 43 2e 2e 2e 23 23 2e #..#####CC...##.
2720: 43 23 43 42 42 2e 23 2e 2e 2e 23 23 42 23 2e 2e C#CBB.#...##B#..
2730: 44 23 41 41 23 41 2e 2e 23 2e 22 2c 20 22 2e 2e D#AA#A..#.", "..
2740: 2e 42 42 46 42 2e 23 42 2e 2e 42 23 42 23 23 23 .BBFB.#B..B#B###
2750: 23 42 47 2e 2e 23 2e 47 2e 23 2e 23 23 2e 23 23 #BG..#.G.#.##.##
2760: 23 2e 47 23 23 23 2e 2e 2e 23 47 41 2e 2e 23 41 #.G###...#GA..#A
2770: 22 2c 20 22 2e 23 43 2e 43 41 23 23 45 23 23 45 ", ".#C.CA##E##E
2780: 46 23 44 46 23 45 2e 45 2e 23 23 23 45 2e 23 47 F#DF#E.E.###E.#G
2790: 2e 2e 43 43 2e 23 2e 2e 23 23 2e 2e 23 41 2e 23 ..CC.#..##..#A.#
27a0: 2e 45 23 23 45 45 22 2c 20 22 2e 2e 23 46 23 2e .E##EE", "..#F#.
27b0: 23 2e 23 2e 2e 2e 2e 23 46 23 23 46 23 46 23 2e #.#....#F##F#F#.
27c0: 2e 23 23 2e 23 23 23 46 2e 2e 23 2e 2e 23 2e 47 .##.###F..#..#.G
27d0: 23 23 23 23 23 47 47 23 2e 23 23 47 22 2c 20 22 #####GG#.##G", "
27e0: 2e 23 2e 2e 2e 44 45 23 2e 2e 23 2e 23 2e 23 23 .#...DE#..#.#.##
27f0: 23 23 23 2e 23 2e 23 23 23 44 2e 23 44 2e 44 2e ###.#.###D.#D.D.
2800: 23 2e 2e 2e 2e 44 23 42 23 42 23 2e 2e 44 41 2e #....D#B#B#..DA.
2810: 2e 41 22 2c 20 22 23 2e 2e 23 23 2e 23 2e 23 23 .A", "#..##.#.##
2820: 23 41 2e 46 23 23 2e 2e 2e 23 2e 2e 2e 2e 2e 46 #A.F##...#.....F
2830: 23 46 23 2e 2e 2e 2e 46 23 23 46 23 2e 23 23 23 #F#....F##F#.###
2840: 45 23 23 23 45 44 23 43 22 2c 20 22 43 2e 2e 2e E###ED#C", "C...
2850: 43 23 46 2e 23 41 23 23 2e 23 2e 2e 23 2e 2e 23 C#F.#A##.#..#..#
2860: 2e 2e 2e 2e 23 46 23 42 23 2e 2e 46 23 23 46 2e ....#F#B#..F##F.
2870: 44 2e 2e 23 23 23 2e 41 23 23 23 41 2e 41 22 2c D..###.A###A.A",
2880: 20 22 2e 23 23 23 2e 2e 23 44 2e 2e 23 2e 2e 23 ".###..#D..#..#
2890: 23 43 2e 23 2e 2e 2e 2e 23 23 2e 2e 23 23 2e 2e #C.#....##..##..
28a0: 2e 2e 2e 2e 23 23 23 45 2e 23 2e 2e 23 23 45 45 ....###E.#..##EE
28b0: 2e 46 23 23 22 2c 20 22 2e 2e 46 2e 23 44 2e 23 .F##", "..F.#D.#
28c0: 2e 2e 2e 23 23 44 23 2e 2e 44 23 2e 2e 23 2e 46 ...##D#..D#..#.F
28d0: 23 2e 43 2e 2e 23 23 2e 2e 23 2e 2e 23 2e 2e 2e #.C..##..#..#...
28e0: 2e 43 2e 2e 23 42 2e 23 2e 2e 22 2c 20 22 23 2e .C..#B.#..", "#.
28f0: 2e 2e 23 23 2e 2e 2e 42 2e 23 23 23 2e 2e 23 42 ..##...B.###..#B
2900: 46 23 43 2e 2e 23 23 2e 2e 2e 23 23 23 2e 23 23 F#C..##...###.##
2910: 2e 23 23 2e 47 42 42 2e 2e 23 2e 2e 2e 2e 23 46 .##.GBB..#....#F
2920: 22 2c 20 22 46 2e 23 2e 23 23 2e 23 23 2e 23 2e ", "F.#.##.##.#.
2930: 2e 43 2e 2e 23 2e 2e 45 2e 43 43 23 2e 2e 2e 43 .C..#..E.CC#...C
2940: 23 47 2e 2e 2e 23 2e 47 2e 2e 47 2e 41 2e 2e 46 #G...#.G..G.A..F
2950: 23 46 2e 23 2e 2e 22 2c 20 22 23 23 2e 2e 46 23 #F.#..", "##..F#
2960: 2e 23 2e 2e 2e 2e 46 2e 23 23 23 44 23 23 2e 23 .#....F.###D##.#
2970: 47 2e 23 23 2e 23 23 23 2e 2e 23 23 47 47 23 23 G.##.###..##GG##
2980: 23 23 2e 2e 2e 2e 2e 23 23 47 47 2e 22 2c 20 22 ##.....##GG.", "
2990: 23 23 2e 2e 23 2e 2e 2e 2e 23 47 47 23 47 2e 47 ##..#....#GG#G.G
29a0: 2e 46 2e 2e 46 23 2e 2e 23 2e 2e 2e 2e 23 2e 23 .F..F#..#....#.#
29b0: 23 2e 2e 23 23 2e 23 43 43 2e 23 2e 42 41 2e 23 #..##.#CC.#.BA.#
29c0: 2e 23 22 2c 20 22 23 2e 23 2e 2e 23 23 44 23 2e .#", "#.#..##D#.
29d0: 23 23 2e 23 2e 23 23 2e 23 2e 23 41 23 2e 43 2e ##.#.##.#.#A#.C.
29e0: 2e 23 23 23 23 2e 2e 2e 2e 2e 23 2e 2e 23 2e 23 .####.....#..#.#
29f0: 23 23 43 2e 23 43 2e 23 22 2c 20 22 2e 23 43 21 ##C.#C.#", ".#C!
2a00: 23 23 2e 2e 2e 43 23 23 23 2e 45 2e 2e 2e 23 2e ##...C###.E...#.
2a10: 23 2e 2e 23 23 23 2e 2e 2e 45 23 23 23 23 23 45 #..###...E#####E
2a20: 23 2e 23 23 23 46 23 46 2e 23 23 23 2e 2e 22 7d #.###F#F.###.."}
2a30: 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 73 74 ;... vector <st
2a40: 72 69 6e 67 3e 20 6d 61 7a 65 28 6d 61 7a 65 5f ring> maze(maze_
2a50: 2c 20 6d 61 7a 65 5f 2b 73 69 7a 65 6f 66 28 6d , maze_+sizeof(m
2a60: 61 7a 65 5f 29 2f 73 69 7a 65 6f 66 28 2a 6d 61 aze_)/sizeof(*ma
2a70: 7a 65 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 74 72 ze_)); ...int tr
2a80: 61 70 5f 5b 5d 20 3d 20 7b 31 34 2c 20 32 32 2c ap_[] = {14, 22,
2a90: 20 31 30 30 2c 20 33 34 2c 20 31 35 2c 20 33 33 100, 34, 15, 33
2aa0: 2c 20 34 32 7d 3b 0d 0a 09 20 20 76 65 63 74 6f , 42};... vecto
2ab0: 72 20 3c 69 6e 74 3e 20 74 72 61 70 28 74 72 61 r <int> trap(tra
2ac0: 70 5f 2c 20 74 72 61 70 5f 2b 73 69 7a 65 6f 66 p_, trap_+sizeof
2ad0: 28 74 72 61 70 5f 29 2f 73 69 7a 65 6f 66 28 2a (trap_)/sizeof(*
2ae0: 74 72 61 70 5f 29 29 3b 20 0d 0a 09 64 6f 75 62 trap_)); ...doub
2af0: 6c 65 20 5f 20 3d 20 30 2e 33 34 34 39 31 35 39 le _ = 0.3449159
2b00: 39 39 39 39 39 39 39 39 39 34 3b 20 0d 0a 45 4e 9999999994; ..EN
2b10: 44 0d 0a 7d 0d 0a 2f 2f 20 45 4e 44 20 43 55 54 D..}..// END CUT
2b20: 20 48 45 52 45 0d 0a HERE..