Hex Artifact Content
Not logged in

Artifact a16249ed416e3f883181dd9497a807dc2b6b7b68:


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 56 61  CMP;....class Va
01a0: 63 61 74 69 6f 6e 54 6f 75 72 73 20 7b 20 70 75  cationTours { pu
01b0: 62 6c 69 63 3a 0d 0a 09 69 6e 74 20 67 65 74 49  blic:...int getI
01c0: 6e 63 6f 6d 65 28 76 65 63 74 6f 72 20 3c 73 74  ncome(vector <st
01d0: 72 69 6e 67 3e 20 63 2c 20 76 65 63 74 6f 72 20  ring> c, vector 
01e0: 3c 73 74 72 69 6e 67 3e 20 64 2c 20 69 6e 74 20  <string> d, int 
01f0: 66 65 65 29 20 0d 0a 09 7b 0d 0a 09 09 69 6e 74  fee) ...{....int
0200: 20 4e 20 3d 20 63 2e 73 69 7a 65 28 29 3b 0d 0a   N = c.size();..
0210: 09 09 76 65 63 74 6f 72 3c 20 76 65 63 74 6f 72  ..vector< vector
0220: 3c 69 6e 74 3e 20 3e 20 47 28 4e 2c 20 76 65 63  <int> > G(N, vec
0230: 74 6f 72 3c 69 6e 74 3e 28 4e 29 29 3b 0d 0a 09  tor<int>(N));...
0240: 09 66 6f 72 28 69 6e 74 20 69 3d 30 3b 20 69 3c  .for(int i=0; i<
0250: 4e 3b 20 2b 2b 69 29 0d 0a 09 09 09 66 6f 72 28  N; ++i).....for(
0260: 69 6e 74 20 6a 3d 30 3b 20 6a 3c 4e 3b 20 2b 2b  int j=0; j<N; ++
0270: 6a 29 0d 0a 09 09 09 09 47 5b 69 5d 5b 6a 5d 20  j)......G[i][j] 
0280: 3d 20 64 65 63 28 63 5b 69 5d 5b 6a 5d 29 2a 36  = dec(c[i][j])*6
0290: 34 20 2b 20 64 65 63 28 64 5b 69 5d 5b 6a 5d 29  4 + dec(d[i][j])
02a0: 3b 0d 0a 0d 0a 09 09 69 6e 74 20 62 61 73 65 66  ;......int basef
02b0: 65 65 20 3d 20 66 65 65 20 2a 20 28 4e 2d 31 29  ee = fee * (N-1)
02c0: 3b 0d 0a 09 09 66 6f 72 28 69 6e 74 20 69 3d 31  ;....for(int i=1
02d0: 3b 20 69 3c 4e 3b 20 2b 2b 69 29 0d 0a 09 09 09  ; i<N; ++i).....
02e0: 62 61 73 65 66 65 65 20 2d 3d 20 47 5b 30 5d 5b  basefee -= G[0][
02f0: 69 5d 20 2b 20 47 5b 69 5d 5b 30 5d 3b 0d 0a 0d  i] + G[i][0];...
0300: 0a 09 09 74 79 70 65 64 65 66 20 70 61 69 72 3c  ...typedef pair<
0310: 20 69 6e 74 2c 20 70 61 69 72 3c 69 6e 74 2c 69   int, pair<int,i
0320: 6e 74 3e 20 3e 20 65 64 67 65 3b 0d 0a 09 09 73  nt> > edge;....s
0330: 65 74 3c 20 65 64 67 65 2c 20 67 72 65 61 74 65  et< edge, greate
0340: 72 3c 65 64 67 65 3e 20 3e 20 65 73 3b 0d 0a 09  r<edge> > es;...
0350: 09 76 65 63 74 6f 72 3c 20 76 65 63 74 6f 72 3c  .vector< vector<
0360: 69 6e 74 3e 20 3e 20 50 28 4e 2c 20 76 65 63 74  int> > P(N, vect
0370: 6f 72 3c 69 6e 74 3e 28 4e 29 29 3b 0d 0a 09 09  or<int>(N));....
0380: 66 6f 72 28 69 6e 74 20 69 3d 31 3b 20 69 3c 4e  for(int i=1; i<N
0390: 3b 20 2b 2b 69 29 0d 0a 09 09 09 66 6f 72 28 69  ; ++i).....for(i
03a0: 6e 74 20 6a 3d 31 3b 20 6a 3c 4e 3b 20 2b 2b 6a  nt j=1; j<N; ++j
03b0: 29 20 69 66 28 69 21 3d 6a 29 20 7b 0d 0a 09 09  ) if(i!=j) {....
03c0: 09 09 50 5b 69 5d 5b 6a 5d 20 3d 20 2d 66 65 65  ..P[i][j] = -fee
03d0: 20 2d 20 47 5b 69 5d 5b 6a 5d 20 2b 20 47 5b 69   - G[i][j] + G[i
03e0: 5d 5b 30 5d 20 2b 20 47 5b 30 5d 5b 6a 5d 3b 0d  ][0] + G[0][j];.
03f0: 0a 09 09 09 09 65 73 2e 69 6e 73 65 72 74 28 20  .....es.insert( 
0400: 65 64 67 65 28 50 5b 69 5d 5b 6a 5d 2c 20 6d 61  edge(P[i][j], ma
0410: 6b 65 5f 70 61 69 72 28 69 2c 6a 29 29 20 29 3b  ke_pair(i,j)) );
0420: 0d 0a 09 09 09 7d 0d 0a 0d 0a 09 09 69 6e 74 20  .....}......int 
0430: 67 61 69 6e 20 3d 20 30 3b 0d 0a 0d 0a 09 09 76  gain = 0;......v
0440: 65 63 74 6f 72 3c 62 6f 6f 6c 3e 20 6f 75 74 28  ector<bool> out(
0450: 4e 2c 74 72 75 65 29 2c 20 69 6e 28 4e 2c 74 72  N,true), in(N,tr
0460: 75 65 29 3b 0d 0a 09 09 76 65 63 74 6f 72 3c 69  ue);....vector<i
0470: 6e 74 3e 20 75 66 28 4e 29 2c 20 73 7a 28 4e 29  nt> uf(N), sz(N)
0480: 3b 0d 0a 09 09 66 6f 72 28 69 6e 74 20 76 3d 30  ;....for(int v=0
0490: 3b 20 76 3c 4e 3b 20 2b 2b 76 29 20 75 66 5b 76  ; v<N; ++v) uf[v
04a0: 5d 3d 76 2c 20 73 7a 5b 76 5d 3d 31 3b 0d 0a 0d  ]=v, sz[v]=1;...
04b0: 0a 09 09 66 6f 72 28 73 65 74 3c 20 65 64 67 65  ...for(set< edge
04c0: 2c 20 67 72 65 61 74 65 72 3c 65 64 67 65 3e 20  , greater<edge> 
04d0: 3e 3a 3a 69 74 65 72 61 74 6f 72 20 69 74 3d 65  >::iterator it=e
04e0: 73 2e 62 65 67 69 6e 28 29 3b 20 69 74 21 3d 65  s.begin(); it!=e
04f0: 73 2e 65 6e 64 28 29 3b 20 2b 2b 69 74 29 0d 0a  s.end(); ++it)..
0500: 09 09 7b 0d 0a 09 09 09 69 6e 74 20 63 20 3d 20  ..{.....int c = 
0510: 69 74 2d 3e 66 69 72 73 74 3b 0d 0a 09 09 09 69  it->first;.....i
0520: 6e 74 20 61 20 3d 20 69 74 2d 3e 73 65 63 6f 6e  nt a = it->secon
0530: 64 2e 66 69 72 73 74 3b 0d 0a 09 09 09 69 6e 74  d.first;.....int
0540: 20 62 20 3d 20 69 74 2d 3e 73 65 63 6f 6e 64 2e   b = it->second.
0550: 73 65 63 6f 6e 64 3b 0d 0a 09 09 09 69 66 28 20  second;.....if( 
0560: 63 20 3c 3d 20 30 20 29 0d 0a 09 09 09 09 62 72  c <= 0 )......br
0570: 65 61 6b 3b 0d 0a 09 09 09 69 66 28 20 21 6f 75  eak;.....if( !ou
0580: 74 5b 61 5d 20 7c 7c 20 21 69 6e 5b 62 5d 20 29  t[a] || !in[b] )
0590: 0d 0a 09 09 09 09 63 6f 6e 74 69 6e 75 65 3b 0d  ......continue;.
05a0: 0a 09 09 09 2f 2f 20 72 65 70 72 0d 0a 09 09 09  ....// repr.....
05b0: 69 6e 74 20 72 61 3d 61 3b 20 77 68 69 6c 65 28  int ra=a; while(
05c0: 75 66 5b 72 61 5d 21 3d 72 61 29 20 72 61 3d 75  uf[ra]!=ra) ra=u
05d0: 66 5b 72 61 5d 3b 0d 0a 09 09 09 69 6e 74 20 72  f[ra];.....int r
05e0: 62 3d 62 3b 20 77 68 69 6c 65 28 75 66 5b 72 62  b=b; while(uf[rb
05f0: 5d 21 3d 72 62 29 20 72 62 3d 75 66 5b 72 62 5d  ]!=rb) rb=uf[rb]
0600: 3b 0d 0a 09 09 09 69 66 28 20 72 61 20 21 3d 20  ;.....if( ra != 
0610: 72 62 20 29 20 7b 0d 0a 09 09 09 09 67 61 69 6e  rb ) {......gain
0620: 20 2b 3d 20 63 3b 0d 0a 09 09 09 09 2f 2f 20 75   += c;......// u
0630: 6e 69 6f 6e 0d 0a 09 09 09 09 69 66 28 20 73 7a  nion......if( sz
0640: 5b 72 61 5d 20 3e 20 73 7a 5b 72 62 5d 20 29 20  [ra] > sz[rb] ) 
0650: 73 77 61 70 28 72 61 2c 72 62 29 3b 0d 0a 09 09  swap(ra,rb);....
0660: 09 09 75 66 5b 72 61 5d 20 3d 20 72 62 3b 0d 0a  ..uf[ra] = rb;..
0670: 09 09 09 09 73 7a 5b 72 62 5d 20 2b 3d 20 73 7a  ....sz[rb] += sz
0680: 5b 72 61 5d 3b 0d 0a 09 09 09 09 6f 75 74 5b 61  [ra];......out[a
0690: 5d 20 3d 20 66 61 6c 73 65 3b 0d 0a 09 09 09 09  ] = false;......
06a0: 69 6e 5b 62 5d 20 3d 20 66 61 6c 73 65 3b 0d 0a  in[b] = false;..
06b0: 09 09 09 7d 0d 0a 09 09 7d 0d 0a 0d 0a 09 09 72  ...}....}......r
06c0: 65 74 75 72 6e 20 6d 61 78 28 30 2c 20 62 61 73  eturn max(0, bas
06d0: 65 66 65 65 2b 67 61 69 6e 29 3b 0d 0a 09 7d 0d  efee+gain);...}.
06e0: 0a 0d 0a 09 69 6e 74 20 64 65 63 28 63 68 61 72  ....int dec(char
06f0: 20 63 29 0d 0a 09 7b 0d 0a 09 09 69 66 28 27 41   c)...{....if('A
0700: 27 3c 3d 63 20 26 26 20 63 3c 3d 27 5a 27 29 20  '<=c && c<='Z') 
0710: 72 65 74 75 72 6e 20 63 2d 27 41 27 3b 0d 0a 09  return c-'A';...
0720: 09 69 66 28 27 61 27 3c 3d 63 20 26 26 20 63 3c  .if('a'<=c && c<
0730: 3d 27 7a 27 29 20 72 65 74 75 72 6e 20 63 2d 27  ='z') return c-'
0740: 61 27 2b 32 36 3b 0d 0a 09 09 69 66 28 27 30 27  a'+26;....if('0'
0750: 3c 3d 63 20 26 26 20 63 3c 3d 27 39 27 29 20 72  <=c && c<='9') r
0760: 65 74 75 72 6e 20 63 2d 27 30 27 2b 35 32 3b 0d  eturn c-'0'+52;.
0770: 0a 09 09 69 66 28 63 3d 3d 27 2b 27 29 72 65 74  ...if(c=='+')ret
0780: 75 72 6e 20 36 32 3b 0d 0a 09 09 72 65 74 75 72  urn 62;....retur
0790: 6e 20 36 33 3b 0d 0a 09 7d 0d 0a 7d 3b 0d 0a 0d  n 63;...}..};...
07a0: 0a 2f 2f 20 42 45 47 49 4e 20 43 55 54 20 48 45  .// BEGIN CUT HE
07b0: 52 45 0d 0a 23 69 6e 63 6c 75 64 65 20 3c 63 74  RE..#include <ct
07c0: 69 6d 65 3e 0d 0a 64 6f 75 62 6c 65 20 73 74 61  ime>..double sta
07d0: 72 74 5f 74 69 6d 65 3b 20 73 74 72 69 6e 67 20  rt_time; string 
07e0: 74 69 6d 65 72 28 29 0d 0a 20 7b 20 6f 73 74 72  timer().. { ostr
07f0: 69 6e 67 73 74 72 65 61 6d 20 6f 73 3b 20 6f 73  ingstream os; os
0800: 20 3c 3c 20 22 20 28 22 20 3c 3c 20 69 6e 74 28   << " (" << int(
0810: 28 63 6c 6f 63 6b 28 29 2d 73 74 61 72 74 5f 74  (clock()-start_t
0820: 69 6d 65 29 2f 43 4c 4f 43 4b 53 5f 50 45 52 5f  ime)/CLOCKS_PER_
0830: 53 45 43 2a 31 30 30 30 29 20 3c 3c 20 22 20 6d  SEC*1000) << " m
0840: 73 65 63 29 22 3b 20 72 65 74 75 72 6e 20 6f 73  sec)"; return os
0850: 2e 73 74 72 28 29 3b 20 7d 0d 0a 74 65 6d 70 6c  .str(); }..templ
0860: 61 74 65 3c 74 79 70 65 6e 61 6d 65 20 54 3e 20  ate<typename T> 
0870: 6f 73 74 72 65 61 6d 26 20 6f 70 65 72 61 74 6f  ostream& operato
0880: 72 3c 3c 28 6f 73 74 72 65 61 6d 26 20 6f 73 2c  r<<(ostream& os,
0890: 20 63 6f 6e 73 74 20 76 65 63 74 6f 72 3c 54 3e   const vector<T>
08a0: 26 20 76 29 0d 0a 20 7b 20 6f 73 20 3c 3c 20 22  & v).. { os << "
08b0: 7b 20 22 3b 0d 0a 20 20 20 66 6f 72 28 74 79 70  { ";..   for(typ
08c0: 65 6e 61 6d 65 20 76 65 63 74 6f 72 3c 54 3e 3a  ename vector<T>:
08d0: 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20  :const_iterator 
08e0: 69 74 3d 76 2e 62 65 67 69 6e 28 29 3b 20 69 74  it=v.begin(); it
08f0: 21 3d 76 2e 65 6e 64 28 29 3b 20 2b 2b 69 74 29  !=v.end(); ++it)
0900: 0d 0a 20 20 20 6f 73 20 3c 3c 20 27 5c 22 27 20  ..   os << '\"' 
0910: 3c 3c 20 2a 69 74 20 3c 3c 20 27 5c 22 27 20 3c  << *it << '\"' <
0920: 3c 20 28 69 74 2b 31 3d 3d 76 2e 65 6e 64 28 29  < (it+1==v.end()
0930: 20 3f 20 22 22 20 3a 20 22 2c 20 22 29 3b 20 6f   ? "" : ", "); o
0940: 73 20 3c 3c 20 22 20 7d 22 3b 20 72 65 74 75 72  s << " }"; retur
0950: 6e 20 6f 73 3b 20 7d 0d 0a 76 6f 69 64 20 76 65  n os; }..void ve
0960: 72 69 66 79 5f 63 61 73 65 28 63 6f 6e 73 74 20  rify_case(const 
0970: 69 6e 74 26 20 45 78 70 65 63 74 65 64 2c 20 63  int& Expected, c
0980: 6f 6e 73 74 20 69 6e 74 26 20 52 65 63 65 69 76  onst int& Receiv
0990: 65 64 29 20 7b 0d 0a 20 62 6f 6f 6c 20 6f 6b 20  ed) {.. bool ok 
09a0: 3d 20 28 45 78 70 65 63 74 65 64 20 3d 3d 20 52  = (Expected == R
09b0: 65 63 65 69 76 65 64 29 3b 0d 0a 20 69 66 28 6f  eceived);.. if(o
09c0: 6b 29 20 63 65 72 72 20 3c 3c 20 22 50 41 53 53  k) cerr << "PASS
09d0: 45 44 22 20 3c 3c 20 74 69 6d 65 72 28 29 20 3c  ED" << timer() <
09e0: 3c 20 65 6e 64 6c 3b 20 20 65 6c 73 65 20 7b 20  < endl;  else { 
09f0: 63 65 72 72 20 3c 3c 20 22 46 41 49 4c 45 44 22  cerr << "FAILED"
0a00: 20 3c 3c 20 74 69 6d 65 72 28 29 20 3c 3c 20 65   << timer() << e
0a10: 6e 64 6c 3b 0d 0a 20 63 65 72 72 20 3c 3c 20 22  ndl;.. cerr << "
0a20: 5c 74 6f 3a 20 5c 22 22 20 3c 3c 20 45 78 70 65  \to: \"" << Expe
0a30: 63 74 65 64 20 3c 3c 20 27 5c 22 27 20 3c 3c 20  cted << '\"' << 
0a40: 65 6e 64 6c 20 3c 3c 20 22 5c 74 78 3a 20 5c 22  endl << "\tx: \"
0a50: 22 20 3c 3c 20 52 65 63 65 69 76 65 64 20 3c 3c  " << Received <<
0a60: 20 27 5c 22 27 20 3c 3c 20 65 6e 64 6c 3b 20 7d   '\"' << endl; }
0a70: 20 7d 0d 0a 23 64 65 66 69 6e 65 20 43 41 53 45   }..#define CASE
0a80: 28 4e 29 20 7b 63 65 72 72 20 3c 3c 20 22 54 65  (N) {cerr << "Te
0a90: 73 74 20 43 61 73 65 20 23 22 20 3c 3c 20 4e 20  st Case #" << N 
0aa0: 3c 3c 20 22 2e 2e 2e 22 20 3c 3c 20 66 6c 75 73  << "..." << flus
0ab0: 68 3b 20 73 74 61 72 74 5f 74 69 6d 65 3d 63 6c  h; start_time=cl
0ac0: 6f 63 6b 28 29 3b 0d 0a 23 64 65 66 69 6e 65 20  ock();..#define 
0ad0: 45 4e 44 09 20 76 65 72 69 66 79 5f 63 61 73 65  END. verify_case
0ae0: 28 5f 2c 20 56 61 63 61 74 69 6f 6e 54 6f 75 72  (_, VacationTour
0af0: 73 28 29 2e 67 65 74 49 6e 63 6f 6d 65 28 63 2c  s().getIncome(c,
0b00: 20 64 2c 20 66 65 65 29 29 3b 7d 0d 0a 69 6e 74   d, fee));}..int
0b10: 20 6d 61 69 6e 28 29 7b 0d 0a 0d 0a 43 41 53 45   main(){....CASE
0b20: 28 30 29 0d 0a 09 73 74 72 69 6e 67 20 63 5f 5b  (0)...string c_[
0b30: 5d 20 3d 20 7b 22 41 41 41 22 2c 0d 0a 20 22 41  ] = {"AAA",.. "A
0b40: 41 41 22 2c 0d 0a 20 22 41 41 41 22 7d 3b 0d 0a  AA",.. "AAA"};..
0b50: 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e  .  vector <strin
0b60: 67 3e 20 63 28 63 5f 2c 20 63 5f 2b 73 69 7a 65  g> c(c_, c_+size
0b70: 6f 66 28 63 5f 29 2f 73 69 7a 65 6f 66 28 2a 63  of(c_)/sizeof(*c
0b80: 5f 29 29 3b 20 0d 0a 09 73 74 72 69 6e 67 20 64  _)); ...string d
0b90: 5f 5b 5d 20 3d 20 7b 22 41 42 4a 22 2c 0d 0a 20  _[] = {"ABJ",.. 
0ba0: 22 4a 41 42 22 2c 0d 0a 20 22 42 4a 41 22 7d 3b  "JAB",.. "BJA"};
0bb0: 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72  ...  vector <str
0bc0: 69 6e 67 3e 20 64 28 64 5f 2c 20 64 5f 2b 73 69  ing> d(d_, d_+si
0bd0: 7a 65 6f 66 28 64 5f 29 2f 73 69 7a 65 6f 66 28  zeof(d_)/sizeof(
0be0: 2a 64 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 66 65  *d_)); ...int fe
0bf0: 65 20 3d 20 31 35 3b 20 0d 0a 09 69 6e 74 20 5f  e = 15; ...int _
0c00: 20 3d 20 31 32 3b 20 0d 0a 45 4e 44 0d 0a 43 41   = 12; ..END..CA
0c10: 53 45 28 31 29 0d 0a 09 73 74 72 69 6e 67 20 63  SE(1)...string c
0c20: 5f 5b 5d 20 3d 20 7b 22 41 41 41 41 22 2c 0d 0a  _[] = {"AAAA",..
0c30: 20 22 41 41 41 41 22 2c 0d 0a 20 22 41 41 41 41   "AAAA",.. "AAAA
0c40: 22 2c 0d 0a 20 22 41 41 41 41 22 7d 3b 0d 0a 09  ",.. "AAAA"};...
0c50: 20 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e 67    vector <string
0c60: 3e 20 63 28 63 5f 2c 20 63 5f 2b 73 69 7a 65 6f  > c(c_, c_+sizeo
0c70: 66 28 63 5f 29 2f 73 69 7a 65 6f 66 28 2a 63 5f  f(c_)/sizeof(*c_
0c80: 29 29 3b 20 0d 0a 09 73 74 72 69 6e 67 20 64 5f  )); ...string d_
0c90: 5b 5d 20 3d 20 7b 22 41 41 41 41 22 2c 0d 0a 20  [] = {"AAAA",.. 
0ca0: 22 41 41 41 41 22 2c 0d 0a 20 22 41 41 41 41 22  "AAAA",.. "AAAA"
0cb0: 2c 0d 0a 20 22 41 41 41 41 22 7d 3b 0d 0a 09 20  ,.. "AAAA"};... 
0cc0: 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e   vector <string>
0cd0: 20 64 28 64 5f 2c 20 64 5f 2b 73 69 7a 65 6f 66   d(d_, d_+sizeof
0ce0: 28 64 5f 29 2f 73 69 7a 65 6f 66 28 2a 64 5f 29  (d_)/sizeof(*d_)
0cf0: 29 3b 20 0d 0a 09 69 6e 74 20 66 65 65 20 3d 20  ); ...int fee = 
0d00: 31 30 30 3b 20 0d 0a 09 69 6e 74 20 5f 20 3d 20  100; ...int _ = 
0d10: 33 30 30 3b 20 0d 0a 45 4e 44 0d 0a 43 41 53 45  300; ..END..CASE
0d20: 28 32 29 0d 0a 09 73 74 72 69 6e 67 20 63 5f 5b  (2)...string c_[
0d30: 5d 20 3d 20 7b 22 41 2f 2f 22 2c 0d 0a 20 22 2f  ] = {"A//",.. "/
0d40: 41 2f 22 2c 0d 0a 20 22 2f 2f 41 22 7d 3b 0d 0a  A/",.. "//A"};..
0d50: 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e  .  vector <strin
0d60: 67 3e 20 63 28 63 5f 2c 20 63 5f 2b 73 69 7a 65  g> c(c_, c_+size
0d70: 6f 66 28 63 5f 29 2f 73 69 7a 65 6f 66 28 2a 63  of(c_)/sizeof(*c
0d80: 5f 29 29 3b 20 0d 0a 09 73 74 72 69 6e 67 20 64  _)); ...string d
0d90: 5f 5b 5d 20 3d 20 7b 22 41 2f 2f 22 2c 0d 0a 20  _[] = {"A//",.. 
0da0: 22 2f 41 2f 22 2c 0d 0a 20 22 2f 2f 41 22 7d 3b  "/A/",.. "//A"};
0db0: 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72  ...  vector <str
0dc0: 69 6e 67 3e 20 64 28 64 5f 2c 20 64 5f 2b 73 69  ing> d(d_, d_+si
0dd0: 7a 65 6f 66 28 64 5f 29 2f 73 69 7a 65 6f 66 28  zeof(d_)/sizeof(
0de0: 2a 64 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 66 65  *d_)); ...int fe
0df0: 65 20 3d 20 31 30 30 30 3b 20 0d 0a 09 69 6e 74  e = 1000; ...int
0e00: 20 5f 20 3d 20 30 3b 20 0d 0a 45 4e 44 0d 0a 43   _ = 0; ..END..C
0e10: 41 53 45 28 33 29 0d 0a 09 73 74 72 69 6e 67 20  ASE(3)...string 
0e20: 63 5f 5b 5d 20 3d 20 7b 22 41 41 41 2f 2f 2f 2f  c_[] = {"AAA////
0e30: 22 2c 0d 0a 20 22 2f 41 41 2f 41 2f 2f 22 2c 0d  ",.. "/AA/A//",.
0e40: 0a 20 22 2f 2f 41 41 2f 41 2f 22 2c 0d 0a 20 22  . "//AA/A/",.. "
0e50: 41 2f 2f 41 41 2f 2f 22 2c 0d 0a 20 22 2f 2f 2f  A//AA//",.. "///
0e60: 41 41 41 2f 22 2c 0d 0a 20 22 2f 2f 2f 41 2f 41  AAA/",.. "///A/A
0e70: 41 22 2c 0d 0a 20 22 41 41 2f 2f 2f 2f 41 22 7d  A",.. "AA////A"}
0e80: 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 73 74  ;...  vector <st
0e90: 72 69 6e 67 3e 20 63 28 63 5f 2c 20 63 5f 2b 73  ring> c(c_, c_+s
0ea0: 69 7a 65 6f 66 28 63 5f 29 2f 73 69 7a 65 6f 66  izeof(c_)/sizeof
0eb0: 28 2a 63 5f 29 29 3b 20 0d 0a 09 73 74 72 69 6e  (*c_)); ...strin
0ec0: 67 20 64 5f 5b 5d 20 3d 20 7b 22 41 4b 6f 2f 2f  g d_[] = {"AKo//
0ed0: 2f 2f 22 2c 0d 0a 20 22 2f 41 55 2f 58 2f 2f 22  //",.. "/AU/X//"
0ee0: 2c 0d 0a 20 22 2f 2f 41 5a 2f 6f 2f 22 2c 0d 0a  ,.. "//AZ/o/",..
0ef0: 20 22 6a 2f 2f 41 4b 2f 2f 22 2c 0d 0a 20 22 2f   "j//AK//",.. "/
0f00: 2f 2f 58 41 6f 2f 22 2c 0d 0a 20 22 2f 2f 2f 79  //XAo/",.. "///y
0f10: 2f 41 4b 22 2c 0d 0a 20 22 4b 50 2f 2f 2f 2f 41  /AK",.. "KP////A
0f20: 22 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c  "};...  vector <
0f30: 73 74 72 69 6e 67 3e 20 64 28 64 5f 2c 20 64 5f  string> d(d_, d_
0f40: 2b 73 69 7a 65 6f 66 28 64 5f 29 2f 73 69 7a 65  +sizeof(d_)/size
0f50: 6f 66 28 2a 64 5f 29 29 3b 20 0d 0a 09 69 6e 74  of(*d_)); ...int
0f60: 20 66 65 65 20 3d 20 31 30 30 30 3b 20 0d 0a 09   fee = 1000; ...
0f70: 69 6e 74 20 5f 20 3d 20 31 38 30 39 3b 20 0d 0a  int _ = 1809; ..
0f80: 45 4e 44 0d 0a 09 2f 2a 0d 0a 43 41 53 45 28 34  END.../*..CASE(4
0f90: 29 0d 0a 09 73 74 72 69 6e 67 20 63 5f 5b 5d 20  )...string c_[] 
0fa0: 3d 20 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c  = ;...  vector <
0fb0: 73 74 72 69 6e 67 3e 20 63 28 63 5f 2c 20 63 5f  string> c(c_, c_
0fc0: 2b 73 69 7a 65 6f 66 28 63 5f 29 2f 73 69 7a 65  +sizeof(c_)/size
0fd0: 6f 66 28 2a 63 5f 29 29 3b 20 0d 0a 09 73 74 72  of(*c_)); ...str
0fe0: 69 6e 67 20 64 5f 5b 5d 20 3d 20 3b 0d 0a 09 20  ing d_[] = ;... 
0ff0: 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e   vector <string>
1000: 20 64 28 64 5f 2c 20 64 5f 2b 73 69 7a 65 6f 66   d(d_, d_+sizeof
1010: 28 64 5f 29 2f 73 69 7a 65 6f 66 28 2a 64 5f 29  (d_)/sizeof(*d_)
1020: 29 3b 20 0d 0a 09 69 6e 74 20 66 65 65 20 3d 20  ); ...int fee = 
1030: 3b 20 0d 0a 09 69 6e 74 20 5f 20 3d 20 3b 20 0d  ; ...int _ = ; .
1040: 0a 45 4e 44 0d 0a 43 41 53 45 28 35 29 0d 0a 09  .END..CASE(5)...
1050: 73 74 72 69 6e 67 20 63 5f 5b 5d 20 3d 20 3b 0d  string c_[] = ;.
1060: 0a 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72 69  ..  vector <stri
1070: 6e 67 3e 20 63 28 63 5f 2c 20 63 5f 2b 73 69 7a  ng> c(c_, c_+siz
1080: 65 6f 66 28 63 5f 29 2f 73 69 7a 65 6f 66 28 2a  eof(c_)/sizeof(*
1090: 63 5f 29 29 3b 20 0d 0a 09 73 74 72 69 6e 67 20  c_)); ...string 
10a0: 64 5f 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63  d_[] = ;...  vec
10b0: 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20 64 28 64  tor <string> d(d
10c0: 5f 2c 20 64 5f 2b 73 69 7a 65 6f 66 28 64 5f 29  _, d_+sizeof(d_)
10d0: 2f 73 69 7a 65 6f 66 28 2a 64 5f 29 29 3b 20 0d  /sizeof(*d_)); .
10e0: 0a 09 69 6e 74 20 66 65 65 20 3d 20 3b 20 0d 0a  ..int fee = ; ..
10f0: 09 69 6e 74 20 5f 20 3d 20 3b 20 0d 0a 45 4e 44  .int _ = ; ..END
1100: 0d 0a 2a 2f 0d 0a 7d 0d 0a 2f 2f 20 45 4e 44 20  ..*/..}..// END 
1110: 43 55 54 20 48 45 52 45 0d 0a                    CUT HERE..