Hex Artifact Content
Not logged in

Artifact ea1144bd38a3e84cb725806bfffbe389d040cf3e:


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..