Hex Artifact Content
Not logged in

Artifact 96e71ffa177d82776b85a35c2001fd55ef69e610:


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 74 75 70 6c 65 3e 0d 0a 75 73 69 6e 67 20 6e  <tuple>..using n
0150: 61 6d 65 73 70 61 63 65 20 73 74 64 3b 0d 0a 74  amespace std;..t
0160: 79 70 65 64 65 66 20 6c 6f 6e 67 20 6c 6f 6e 67  ypedef long long
0170: 20 4c 4c 3b 0d 0a 74 79 70 65 64 65 66 20 63 6f   LL;..typedef co
0180: 6d 70 6c 65 78 3c 64 6f 75 62 6c 65 3e 20 43 4d  mplex<double> CM
0190: 50 3b 0d 0a 0d 0a 63 6c 61 73 73 20 4e 61 72 72  P;....class Narr
01a0: 6f 77 50 61 73 73 61 67 65 20 7b 20 70 75 62 6c  owPassage { publ
01b0: 69 63 3a 0d 0a 09 69 6e 74 20 6d 69 6e 44 69 73  ic:...int minDis
01c0: 74 28 69 6e 74 20 4c 2c 20 76 65 63 74 6f 72 20  t(int L, vector 
01d0: 3c 69 6e 74 3e 20 61 2c 20 76 65 63 74 6f 72 20  <int> a, vector 
01e0: 3c 69 6e 74 3e 20 62 29 0d 0a 09 7b 0d 0a 09 09  <int> b)...{....
01f0: 73 6f 72 74 61 62 28 61 2c 62 29 3b 0d 0a 0d 0a  sortab(a,b);....
0200: 09 09 69 6e 74 20 72 20 3d 20 30 78 33 66 66 66  ..int r = 0x3fff
0210: 66 66 66 66 3b 0d 0a 09 09 72 20 3d 20 6d 69 6e  ffff;....r = min
0220: 28 72 2c 20 73 6f 6c 76 65 5f 77 69 74 68 5f 70  (r, solve_with_p
0230: 61 72 74 69 61 6c 28 4c 2c 20 61 2c 20 62 2c 20  artial(L, a, b, 
0240: 30 2c 20 22 4c 52 22 2c 20 30 29 29 3b 0d 0a 09  0, "LR", 0));...
0250: 09 72 20 3d 20 6d 69 6e 28 72 2c 20 73 6f 6c 76  .r = min(r, solv
0260: 65 5f 77 69 74 68 5f 70 61 72 74 69 61 6c 28 4c  e_with_partial(L
0270: 2c 20 61 2c 20 62 2c 20 30 2c 20 22 52 4c 22 2c  , a, b, 0, "RL",
0280: 20 30 29 29 3b 0d 0a 09 09 72 65 74 75 72 6e 20   0));....return 
0290: 72 3b 0d 0a 09 7d 0d 0a 0d 0a 09 76 6f 69 64 20  r;...}.....void 
02a0: 73 6f 72 74 61 62 28 76 65 63 74 6f 72 20 3c 69  sortab(vector <i
02b0: 6e 74 3e 26 20 61 2c 20 76 65 63 74 6f 72 20 3c  nt>& a, vector <
02c0: 69 6e 74 3e 26 20 62 29 0d 0a 09 7b 0d 0a 09 09  int>& b)...{....
02d0: 63 6f 6e 73 74 20 69 6e 74 20 4e 20 3d 20 61 2e  const int N = a.
02e0: 73 69 7a 65 28 29 3b 0d 0a 09 09 76 65 63 74 6f  size();....vecto
02f0: 72 3c 70 61 69 72 3c 69 6e 74 2c 69 6e 74 3e 3e  r<pair<int,int>>
0300: 20 61 62 3b 0d 0a 09 09 66 6f 72 28 69 6e 74 20   ab;....for(int 
0310: 69 3d 30 3b 20 69 3c 4e 3b 20 2b 2b 69 29 0d 0a  i=0; i<N; ++i)..
0320: 09 09 09 61 62 2e 65 6d 70 6c 61 63 65 5f 62 61  ...ab.emplace_ba
0330: 63 6b 28 61 5b 69 5d 2c 20 62 5b 69 5d 29 3b 0d  ck(a[i], b[i]);.
0340: 0a 09 09 73 6f 72 74 28 61 62 2e 62 65 67 69 6e  ...sort(ab.begin
0350: 28 29 2c 20 61 62 2e 65 6e 64 28 29 29 3b 0d 0a  (), ab.end());..
0360: 09 09 66 6f 72 28 69 6e 74 20 69 3d 30 3b 20 69  ..for(int i=0; i
0370: 3c 4e 3b 20 2b 2b 69 29 20 7b 0d 0a 09 09 09 61  <N; ++i) {.....a
0380: 5b 69 5d 20 3d 20 61 62 5b 69 5d 2e 66 69 72 73  [i] = ab[i].firs
0390: 74 3b 0d 0a 09 09 09 62 5b 69 5d 20 3d 20 61 62  t;.....b[i] = ab
03a0: 5b 69 5d 2e 73 65 63 6f 6e 64 3b 0d 0a 09 09 7d  [i].second;....}
03b0: 0d 0a 09 7d 0d 0a 0d 0a 09 69 6e 74 20 73 6f 6c  ...}.....int sol
03c0: 76 65 5f 77 69 74 68 5f 70 61 72 74 69 61 6c 28  ve_with_partial(
03d0: 69 6e 74 20 4c 2c 20 76 65 63 74 6f 72 3c 69 6e  int L, vector<in
03e0: 74 3e 20 61 2c 20 76 65 63 74 6f 72 3c 69 6e 74  t> a, vector<int
03f0: 3e 20 62 2c 20 69 6e 74 20 6d 2c 20 63 6f 6e 73  > b, int m, cons
0400: 74 20 73 74 72 69 6e 67 26 20 70 61 74 2c 20 69  t string& pat, i
0410: 6e 74 20 70 61 74 69 29 0d 0a 09 7b 0d 0a 09 09  nt pati)...{....
0420: 63 6f 6e 73 74 20 69 6e 74 20 4e 20 3d 20 61 2e  const int N = a.
0430: 73 69 7a 65 28 29 3b 0d 0a 09 09 69 6e 74 20 72  size();....int r
0440: 20 3d 20 30 3b 0d 0a 09 09 69 66 28 6d 29 20 7b   = 0;....if(m) {
0450: 0d 0a 09 09 09 69 66 28 70 61 74 5b 70 61 74 69  .....if(pat[pati
0460: 5d 20 3d 3d 20 27 4c 27 29 20 7b 0d 0a 09 09 09  ] == 'L') {.....
0470: 09 76 65 63 74 6f 72 3c 69 6e 74 3e 20 69 64 78  .vector<int> idx
0480: 3b 0d 0a 09 09 09 09 66 6f 72 28 69 6e 74 20 69  ;......for(int i
0490: 3d 30 3b 20 69 3c 6d 3b 20 2b 2b 69 29 0d 0a 09  =0; i<m; ++i)...
04a0: 09 09 09 09 69 64 78 2e 70 75 73 68 5f 62 61 63  ....idx.push_bac
04b0: 6b 28 69 29 3b 0d 0a 09 09 09 09 73 6f 72 74 28  k(i);......sort(
04c0: 69 64 78 2e 62 65 67 69 6e 28 29 2c 20 69 64 78  idx.begin(), idx
04d0: 2e 65 6e 64 28 29 2c 20 5b 26 5d 28 69 6e 74 20  .end(), [&](int 
04e0: 69 2c 20 69 6e 74 20 6b 29 7b 0d 0a 09 09 09 09  i, int k){......
04f0: 09 72 65 74 75 72 6e 20 62 5b 69 5d 3c 62 5b 6b  .return b[i]<b[k
0500: 5d 3b 0d 0a 09 09 09 09 7d 29 3b 0d 0a 0d 0a 09  ];......});.....
0510: 09 09 09 66 6f 72 28 69 6e 74 20 69 69 3d 30 3b  ...for(int ii=0;
0520: 20 69 69 3c 69 64 78 2e 73 69 7a 65 28 29 3b 20   ii<idx.size(); 
0530: 2b 2b 69 69 29 20 7b 0d 0a 09 09 09 09 09 69 6e  ++ii) {.......in
0540: 74 20 69 20 3d 20 69 64 78 5b 69 69 5d 3b 0d 0a  t i = idx[ii];..
0550: 09 09 09 09 09 69 6e 74 20 6e 70 20 3d 20 69 69  .....int np = ii
0560: 2b 31 3b 0d 0a 09 09 09 09 09 72 20 2b 3d 20 61  +1;.......r += a
0570: 5b 69 5d 20 2b 20 6e 70 3b 0d 0a 09 09 09 09 09  [i] + np;.......
0580: 61 5b 69 5d 20 3d 20 6e 70 3b 0d 0a 09 09 09 09  a[i] = np;......
0590: 7d 0d 0a 09 09 09 7d 20 65 6c 73 65 20 7b 0d 0a  }.....} else {..
05a0: 09 09 09 09 76 65 63 74 6f 72 3c 69 6e 74 3e 20  ....vector<int> 
05b0: 69 64 78 3b 0d 0a 09 09 09 09 66 6f 72 28 69 6e  idx;......for(in
05c0: 74 20 69 3d 6d 3b 20 69 3c 4e 3b 20 2b 2b 69 29  t i=m; i<N; ++i)
05d0: 0d 0a 09 09 09 09 09 69 64 78 2e 70 75 73 68 5f  .......idx.push_
05e0: 62 61 63 6b 28 69 29 3b 0d 0a 09 09 09 09 73 6f  back(i);......so
05f0: 72 74 28 69 64 78 2e 62 65 67 69 6e 28 29 2c 20  rt(idx.begin(), 
0600: 69 64 78 2e 65 6e 64 28 29 2c 20 5b 26 5d 28 69  idx.end(), [&](i
0610: 6e 74 20 69 2c 20 69 6e 74 20 6b 29 7b 0d 0a 09  nt i, int k){...
0620: 09 09 09 09 72 65 74 75 72 6e 20 62 5b 69 5d 3c  ....return b[i]<
0630: 62 5b 6b 5d 3b 0d 0a 09 09 09 09 7d 29 3b 0d 0a  b[k];......});..
0640: 0d 0a 09 09 09 09 66 6f 72 28 69 6e 74 20 69 69  ......for(int ii
0650: 3d 30 3b 20 69 69 3c 69 64 78 2e 73 69 7a 65 28  =0; ii<idx.size(
0660: 29 3b 20 2b 2b 69 69 29 20 7b 0d 0a 09 09 09 09  ); ++ii) {......
0670: 09 69 6e 74 20 69 20 3d 20 69 64 78 5b 69 69 5d  .int i = idx[ii]
0680: 3b 0d 0a 09 09 09 09 09 69 6e 74 20 6e 70 20 3d  ;.......int np =
0690: 20 4c 2d 28 69 64 78 2e 73 69 7a 65 28 29 2d 69   L-(idx.size()-i
06a0: 69 29 3b 0d 0a 09 09 09 09 09 72 20 2b 3d 20 61  i);.......r += a
06b0: 62 73 28 4c 2d 61 5b 69 5d 29 20 2b 20 61 62 73  bs(L-a[i]) + abs
06c0: 28 4c 2d 6e 70 29 3b 0d 0a 09 09 09 09 09 61 5b  (L-np);.......a[
06d0: 69 5d 20 3d 20 6e 70 3b 0d 0a 09 09 09 09 7d 0d  i] = np;......}.
06e0: 0a 09 09 09 7d 0d 0a 09 09 09 73 6f 72 74 61 62  ....}.....sortab
06f0: 28 61 2c 20 62 29 3b 0d 0a 09 09 7d 0d 0a 0d 0a  (a, b);....}....
0700: 09 09 69 66 28 70 61 74 69 20 3d 3d 20 70 61 74  ..if(pati == pat
0710: 2e 73 69 7a 65 28 29 29 0d 0a 09 09 09 72 65 74  .size()).....ret
0720: 75 72 6e 20 72 20 2b 20 73 6f 6c 76 65 28 4c 2c  urn r + solve(L,
0730: 20 61 2c 20 62 29 3b 0d 0a 0d 0a 09 09 69 6e 74   a, b);......int
0740: 20 62 65 73 74 20 3d 20 30 78 33 66 66 66 66 66   best = 0x3fffff
0750: 66 66 3b 0d 0a 09 09 66 6f 72 28 69 6e 74 20 6d  ff;....for(int m
0760: 6d 3d 30 3b 20 6d 6d 3c 4e 3b 20 2b 2b 6d 6d 29  m=0; mm<N; ++mm)
0770: 0d 0a 09 09 09 62 65 73 74 20 3d 20 6d 69 6e 28  .....best = min(
0780: 62 65 73 74 2c 20 72 20 2b 20 73 6f 6c 76 65 5f  best, r + solve_
0790: 77 69 74 68 5f 70 61 72 74 69 61 6c 28 4c 2c 20  with_partial(L, 
07a0: 61 2c 20 62 2c 20 6d 6d 2c 20 70 61 74 2c 20 70  a, b, mm, pat, p
07b0: 61 74 69 2b 31 29 29 3b 0d 0a 09 09 72 65 74 75  ati+1));....retu
07c0: 72 6e 20 62 65 73 74 3b 0d 0a 09 7d 0d 0a 0d 0a  rn best;...}....
07d0: 09 69 6e 74 20 73 6f 6c 76 65 28 69 6e 74 20 4c  .int solve(int L
07e0: 2c 20 63 6f 6e 73 74 20 76 65 63 74 6f 72 3c 69  , const vector<i
07f0: 6e 74 3e 26 20 61 2c 20 63 6f 6e 73 74 20 76 65  nt>& a, const ve
0800: 63 74 6f 72 3c 69 6e 74 3e 26 20 62 29 0d 0a 09  ctor<int>& b)...
0810: 7b 0d 0a 09 09 63 6f 6e 73 74 20 69 6e 74 20 4e  {....const int N
0820: 20 3d 20 61 2e 73 69 7a 65 28 29 3b 0d 0a 0d 0a   = a.size();....
0830: 09 09 76 65 63 74 6f 72 3c 70 61 69 72 3c 69 6e  ..vector<pair<in
0840: 74 2c 69 6e 74 3e 3e 20 62 61 64 3b 0d 0a 09 09  t,int>> bad;....
0850: 73 65 74 3c 69 6e 74 3e 20 62 61 72 3b 0d 0a 0d  set<int> bar;...
0860: 0a 09 09 66 6f 72 28 69 6e 74 20 69 3d 30 3b 20  ...for(int i=0; 
0870: 69 3c 4e 3b 20 2b 2b 69 29 0d 0a 09 09 66 6f 72  i<N; ++i)....for
0880: 28 69 6e 74 20 6b 3d 69 2b 31 3b 20 6b 3c 4e 3b  (int k=i+1; k<N;
0890: 20 2b 2b 6b 29 0d 0a 09 09 09 69 66 28 21 28 62   ++k).....if(!(b
08a0: 5b 69 5d 3c 62 5b 6b 5d 29 29 20 7b 0d 0a 09 09  [i]<b[k])) {....
08b0: 09 09 62 61 64 2e 65 6d 70 6c 61 63 65 5f 62 61  ..bad.emplace_ba
08c0: 63 6b 28 69 2c 20 6b 2b 31 29 3b 0d 0a 09 09 09  ck(i, k+1);.....
08d0: 09 62 61 72 2e 69 6e 73 65 72 74 28 69 29 3b 0d  .bar.insert(i);.
08e0: 0a 09 09 09 09 62 61 72 2e 69 6e 73 65 72 74 28  .....bar.insert(
08f0: 6b 2b 31 29 3b 0d 0a 09 09 09 7d 0d 0a 0d 0a 09  k+1);.....}.....
0900: 09 7b 0d 0a 09 09 09 73 65 74 3c 69 6e 74 3e 20  .{.....set<int> 
0910: 62 61 72 32 20 3d 20 62 61 72 3b 0d 0a 09 09 09  bar2 = bar;.....
0920: 66 6f 72 28 69 6e 74 20 62 62 20 3a 20 62 61 72  for(int bb : bar
0930: 29 0d 0a 09 09 09 09 66 6f 72 28 61 75 74 6f 26  )......for(auto&
0940: 20 62 69 20 3a 20 62 61 64 29 20 7b 0d 0a 09 09   bi : bad) {....
0950: 09 09 09 69 66 28 62 69 2e 66 69 72 73 74 3c 62  ...if(bi.first<b
0960: 62 20 26 26 20 62 62 3c 62 69 2e 73 65 63 6f 6e  b && bb<bi.secon
0970: 64 29 0d 0a 09 09 09 09 09 09 7b 62 61 72 32 2e  d)........{bar2.
0980: 65 72 61 73 65 28 62 62 29 3b 20 62 72 65 61 6b  erase(bb); break
0990: 3b 7d 0d 0a 09 09 09 09 7d 0d 0a 09 09 09 62 61  ;}......}.....ba
09a0: 72 2e 73 77 61 70 28 62 61 72 32 29 3b 0d 0a 09  r.swap(bar2);...
09b0: 09 7d 0d 0a 0d 0a 09 09 69 66 28 62 61 72 2e 65  .}......if(bar.e
09c0: 6d 70 74 79 28 29 29 0d 0a 09 09 09 72 65 74 75  mpty()).....retu
09d0: 72 6e 20 6e 6f 78 63 68 61 6e 67 65 28 61 2c 20  rn noxchange(a, 
09e0: 62 2c 20 30 2c 20 4e 29 3b 0d 0a 0d 0a 09 09 69  b, 0, N);......i
09f0: 6e 74 20 72 20 3d 20 30 78 33 66 66 66 66 66 66  nt r = 0x3ffffff
0a00: 66 3b 0d 0a 09 09 66 6f 72 28 69 6e 74 20 6d 69  f;....for(int mi
0a10: 64 3a 20 62 61 72 29 20 7b 0d 0a 09 09 09 69 6e  d: bar) {.....in
0a20: 74 20 6c 6c 20 3d 20 30 2c 20 72 72 20 3d 20 4e  t ll = 0, rr = N
0a30: 3b 0d 0a 09 09 09 66 6f 72 28 61 75 74 6f 26 20  ;.....for(auto& 
0a40: 62 69 3a 20 62 61 64 29 20 7b 0d 0a 09 09 09 09  bi: bad) {......
0a50: 69 66 28 62 69 2e 73 65 63 6f 6e 64 20 3c 3d 20  if(bi.second <= 
0a60: 6d 69 64 29 0d 0a 09 09 09 09 09 6c 6c 20 3d 20  mid).......ll = 
0a70: 6d 61 78 28 6c 6c 2c 20 62 69 2e 73 65 63 6f 6e  max(ll, bi.secon
0a80: 64 29 3b 0d 0a 09 09 09 09 69 66 28 6d 69 64 20  d);......if(mid 
0a90: 3c 3d 20 62 69 2e 66 69 72 73 74 29 0d 0a 09 09  <= bi.first)....
0aa0: 09 09 09 72 72 20 3d 20 6d 69 6e 28 72 72 2c 20  ...rr = min(rr, 
0ab0: 62 69 2e 66 69 72 73 74 29 3b 0d 0a 09 09 09 7d  bi.first);.....}
0ac0: 0d 0a 09 09 09 72 20 3d 20 6d 69 6e 28 72 2c 20  .....r = min(r, 
0ad0: 74 6f 74 68 65 65 6e 64 28 30 2c 20 61 2c 20 62  totheend(0, a, b
0ae0: 2c 20 30 2c 20 6c 6c 29 20 2b 20 6e 6f 78 63 68  , 0, ll) + noxch
0af0: 61 6e 67 65 28 61 2c 20 62 2c 20 6c 6c 2c 20 72  ange(a, b, ll, r
0b00: 72 29 20 2b 20 74 6f 74 68 65 65 6e 64 28 4c 2c  r) + totheend(L,
0b10: 20 61 2c 20 62 2c 20 72 72 2c 20 4e 29 29 3b 0d   a, b, rr, N));.
0b20: 0a 09 09 7d 0d 0a 09 09 72 65 74 75 72 6e 20 72  ...}....return r
0b30: 3b 0d 0a 09 7d 0d 0a 0d 0a 09 69 6e 74 20 6e 6f  ;...}.....int no
0b40: 78 63 68 61 6e 67 65 28 63 6f 6e 73 74 20 76 65  xchange(const ve
0b50: 63 74 6f 72 3c 69 6e 74 3e 26 20 61 2c 20 63 6f  ctor<int>& a, co
0b60: 6e 73 74 20 76 65 63 74 6f 72 3c 69 6e 74 3e 26  nst vector<int>&
0b70: 20 62 2c 20 69 6e 74 20 53 2c 20 69 6e 74 20 45   b, int S, int E
0b80: 29 0d 0a 09 7b 0d 0a 09 09 69 6e 74 20 72 65 73  )...{....int res
0b90: 75 6c 74 20 3d 20 30 3b 0d 0a 09 09 66 6f 72 28  ult = 0;....for(
0ba0: 69 6e 74 20 69 3d 53 3b 20 69 3c 45 3b 20 2b 2b  int i=S; i<E; ++
0bb0: 69 29 0d 0a 09 09 09 72 65 73 75 6c 74 20 2b 3d  i).....result +=
0bc0: 20 61 62 73 28 61 5b 69 5d 20 2d 20 62 5b 69 5d   abs(a[i] - b[i]
0bd0: 29 3b 0d 0a 09 09 72 65 74 75 72 6e 20 72 65 73  );....return res
0be0: 75 6c 74 3b 0d 0a 09 7d 0d 0a 0d 0a 09 69 6e 74  ult;...}.....int
0bf0: 20 74 6f 74 68 65 65 6e 64 28 69 6e 74 20 45 4e   totheend(int EN
0c00: 44 2c 20 63 6f 6e 73 74 20 76 65 63 74 6f 72 3c  D, const vector<
0c10: 69 6e 74 3e 26 20 61 2c 20 63 6f 6e 73 74 20 76  int>& a, const v
0c20: 65 63 74 6f 72 3c 69 6e 74 3e 26 20 62 2c 20 69  ector<int>& b, i
0c30: 6e 74 20 53 2c 20 69 6e 74 20 45 29 0d 0a 09 7b  nt S, int E)...{
0c40: 0d 0a 09 09 69 6e 74 20 72 65 73 75 6c 74 20 3d  ....int result =
0c50: 20 30 3b 0d 0a 09 09 66 6f 72 28 69 6e 74 20 69   0;....for(int i
0c60: 3d 53 3b 20 69 3c 45 3b 20 2b 2b 69 29 0d 0a 09  =S; i<E; ++i)...
0c70: 09 09 72 65 73 75 6c 74 20 2b 3d 20 61 62 73 28  ..result += abs(
0c80: 61 5b 69 5d 20 2d 20 45 4e 44 29 20 2b 20 61 62  a[i] - END) + ab
0c90: 73 28 45 4e 44 20 2d 20 62 5b 69 5d 29 3b 0d 0a  s(END - b[i]);..
0ca0: 09 09 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b  ..return result;
0cb0: 0d 0a 09 7d 0d 0a 7d 3b 0d 0a 0d 0a 2f 2f 20 42  ...}..};....// B
0cc0: 45 47 49 4e 20 43 55 54 20 48 45 52 45 0d 0a 23  EGIN CUT HERE..#
0cd0: 69 6e 63 6c 75 64 65 20 3c 63 74 69 6d 65 3e 0d  include <ctime>.
0ce0: 0a 64 6f 75 62 6c 65 20 73 74 61 72 74 5f 74 69  .double start_ti
0cf0: 6d 65 3b 20 73 74 72 69 6e 67 20 74 69 6d 65 72  me; string timer
0d00: 28 29 0d 0a 20 7b 20 6f 73 74 72 69 6e 67 73 74  ().. { ostringst
0d10: 72 65 61 6d 20 6f 73 3b 20 6f 73 20 3c 3c 20 22  ream os; os << "
0d20: 20 28 22 20 3c 3c 20 69 6e 74 28 28 63 6c 6f 63   (" << int((cloc
0d30: 6b 28 29 2d 73 74 61 72 74 5f 74 69 6d 65 29 2f  k()-start_time)/
0d40: 43 4c 4f 43 4b 53 5f 50 45 52 5f 53 45 43 2a 31  CLOCKS_PER_SEC*1
0d50: 30 30 30 29 20 3c 3c 20 22 20 6d 73 65 63 29 22  000) << " msec)"
0d60: 3b 20 72 65 74 75 72 6e 20 6f 73 2e 73 74 72 28  ; return os.str(
0d70: 29 3b 20 7d 0d 0a 74 65 6d 70 6c 61 74 65 3c 74  ); }..template<t
0d80: 79 70 65 6e 61 6d 65 20 54 3e 20 6f 73 74 72 65  ypename T> ostre
0d90: 61 6d 26 20 6f 70 65 72 61 74 6f 72 3c 3c 28 6f  am& operator<<(o
0da0: 73 74 72 65 61 6d 26 20 6f 73 2c 20 63 6f 6e 73  stream& os, cons
0db0: 74 20 76 65 63 74 6f 72 3c 54 3e 26 20 76 29 0d  t vector<T>& v).
0dc0: 0a 20 7b 20 6f 73 20 3c 3c 20 22 7b 20 22 3b 0d  . { os << "{ ";.
0dd0: 0a 20 20 20 66 6f 72 28 74 79 70 65 6e 61 6d 65  .   for(typename
0de0: 20 76 65 63 74 6f 72 3c 54 3e 3a 3a 63 6f 6e 73   vector<T>::cons
0df0: 74 5f 69 74 65 72 61 74 6f 72 20 69 74 3d 76 2e  t_iterator it=v.
0e00: 62 65 67 69 6e 28 29 3b 20 69 74 21 3d 76 2e 65  begin(); it!=v.e
0e10: 6e 64 28 29 3b 20 2b 2b 69 74 29 0d 0a 20 20 20  nd(); ++it)..   
0e20: 6f 73 20 3c 3c 20 27 5c 22 27 20 3c 3c 20 2a 69  os << '\"' << *i
0e30: 74 20 3c 3c 20 27 5c 22 27 20 3c 3c 20 28 69 74  t << '\"' << (it
0e40: 2b 31 3d 3d 76 2e 65 6e 64 28 29 20 3f 20 22 22  +1==v.end() ? ""
0e50: 20 3a 20 22 2c 20 22 29 3b 20 6f 73 20 3c 3c 20   : ", "); os << 
0e60: 22 20 7d 22 3b 20 72 65 74 75 72 6e 20 6f 73 3b  " }"; return os;
0e70: 20 7d 0d 0a 76 6f 69 64 20 76 65 72 69 66 79 5f   }..void verify_
0e80: 63 61 73 65 28 63 6f 6e 73 74 20 69 6e 74 26 20  case(const int& 
0e90: 45 78 70 65 63 74 65 64 2c 20 63 6f 6e 73 74 20  Expected, const 
0ea0: 69 6e 74 26 20 52 65 63 65 69 76 65 64 29 20 7b  int& Received) {
0eb0: 0d 0a 20 62 6f 6f 6c 20 6f 6b 20 3d 20 28 45 78  .. bool ok = (Ex
0ec0: 70 65 63 74 65 64 20 3d 3d 20 52 65 63 65 69 76  pected == Receiv
0ed0: 65 64 29 3b 0d 0a 20 69 66 28 6f 6b 29 20 63 65  ed);.. if(ok) ce
0ee0: 72 72 20 3c 3c 20 22 50 41 53 53 45 44 22 20 3c  rr << "PASSED" <
0ef0: 3c 20 74 69 6d 65 72 28 29 20 3c 3c 20 65 6e 64  < timer() << end
0f00: 6c 3b 20 20 65 6c 73 65 20 7b 20 63 65 72 72 20  l;  else { cerr 
0f10: 3c 3c 20 22 46 41 49 4c 45 44 22 20 3c 3c 20 74  << "FAILED" << t
0f20: 69 6d 65 72 28 29 20 3c 3c 20 65 6e 64 6c 3b 0d  imer() << endl;.
0f30: 0a 20 63 65 72 72 20 3c 3c 20 22 5c 74 6f 3a 20  . cerr << "\to: 
0f40: 5c 22 22 20 3c 3c 20 45 78 70 65 63 74 65 64 20  \"" << Expected 
0f50: 3c 3c 20 27 5c 22 27 20 3c 3c 20 65 6e 64 6c 20  << '\"' << endl 
0f60: 3c 3c 20 22 5c 74 78 3a 20 5c 22 22 20 3c 3c 20  << "\tx: \"" << 
0f70: 52 65 63 65 69 76 65 64 20 3c 3c 20 27 5c 22 27  Received << '\"'
0f80: 20 3c 3c 20 65 6e 64 6c 3b 20 7d 20 7d 0d 0a 23   << endl; } }..#
0f90: 64 65 66 69 6e 65 20 43 41 53 45 28 4e 29 20 7b  define CASE(N) {
0fa0: 63 65 72 72 20 3c 3c 20 22 54 65 73 74 20 43 61  cerr << "Test Ca
0fb0: 73 65 20 23 22 20 3c 3c 20 4e 20 3c 3c 20 22 2e  se #" << N << ".
0fc0: 2e 2e 22 20 3c 3c 20 66 6c 75 73 68 3b 20 73 74  .." << flush; st
0fd0: 61 72 74 5f 74 69 6d 65 3d 63 6c 6f 63 6b 28 29  art_time=clock()
0fe0: 3b 0d 0a 23 64 65 66 69 6e 65 20 45 4e 44 09 20  ;..#define END. 
0ff0: 76 65 72 69 66 79 5f 63 61 73 65 28 5f 2c 20 4e  verify_case(_, N
1000: 61 72 72 6f 77 50 61 73 73 61 67 65 28 29 2e 6d  arrowPassage().m
1010: 69 6e 44 69 73 74 28 4c 2c 20 61 2c 20 62 29 29  inDist(L, a, b))
1020: 3b 7d 0d 0a 69 6e 74 20 6d 61 69 6e 28 29 7b 0d  ;}..int main(){.
1030: 0a 0d 0a 43 41 53 45 28 30 29 0d 0a 09 69 6e 74  ...CASE(0)...int
1040: 20 4c 20 3d 20 35 3b 20 0d 0a 09 69 6e 74 20 61   L = 5; ...int a
1050: 5f 5b 5d 20 3d 20 7b 31 2c 20 32 7d 3b 0d 0a 09  _[] = {1, 2};...
1060: 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 61    vector <int> a
1070: 28 61 5f 2c 20 61 5f 2b 73 69 7a 65 6f 66 28 61  (a_, a_+sizeof(a
1080: 5f 29 2f 73 69 7a 65 6f 66 28 2a 61 5f 29 29 3b  _)/sizeof(*a_));
1090: 20 0d 0a 09 69 6e 74 20 62 5f 5b 5d 20 3d 20 7b   ...int b_[] = {
10a0: 33 2c 20 34 7d 3b 0d 0a 09 20 20 76 65 63 74 6f  3, 4};...  vecto
10b0: 72 20 3c 69 6e 74 3e 20 62 28 62 5f 2c 20 62 5f  r <int> b(b_, b_
10c0: 2b 73 69 7a 65 6f 66 28 62 5f 29 2f 73 69 7a 65  +sizeof(b_)/size
10d0: 6f 66 28 2a 62 5f 29 29 3b 20 0d 0a 09 69 6e 74  of(*b_)); ...int
10e0: 20 5f 20 3d 20 34 3b 20 0d 0a 45 4e 44 0d 0a 43   _ = 4; ..END..C
10f0: 41 53 45 28 31 29 0d 0a 09 69 6e 74 20 4c 20 3d  ASE(1)...int L =
1100: 20 31 30 3b 20 0d 0a 09 69 6e 74 20 61 5f 5b 5d   10; ...int a_[]
1110: 20 3d 20 7b 33 2c 20 39 7d 3b 0d 0a 09 20 20 76   = {3, 9};...  v
1120: 65 63 74 6f 72 20 3c 69 6e 74 3e 20 61 28 61 5f  ector <int> a(a_
1130: 2c 20 61 5f 2b 73 69 7a 65 6f 66 28 61 5f 29 2f  , a_+sizeof(a_)/
1140: 73 69 7a 65 6f 66 28 2a 61 5f 29 29 3b 20 0d 0a  sizeof(*a_)); ..
1150: 09 69 6e 74 20 62 5f 5b 5d 20 3d 20 7b 38 2c 20  .int b_[] = {8, 
1160: 36 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c  6};...  vector <
1170: 69 6e 74 3e 20 62 28 62 5f 2c 20 62 5f 2b 73 69  int> b(b_, b_+si
1180: 7a 65 6f 66 28 62 5f 29 2f 73 69 7a 65 6f 66 28  zeof(b_)/sizeof(
1190: 2a 62 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 5f 20  *b_)); ...int _ 
11a0: 3d 20 31 34 3b 20 0d 0a 45 4e 44 0d 0a 43 41 53  = 14; ..END..CAS
11b0: 45 28 32 29 0d 0a 09 69 6e 74 20 4c 20 3d 20 32  E(2)...int L = 2
11c0: 36 35 34 36 37 3b 20 0d 0a 09 69 6e 74 20 61 5f  65467; ...int a_
11d0: 5b 5d 20 3d 20 7b 31 33 33 35 34 38 2c 20 31 30  [] = {133548, 10
11e0: 33 38 36 31 2c 20 32 39 38 32 31 2c 20 31 39 39  3861, 29821, 199
11f0: 38 34 38 2c 20 39 32 36 38 34 2c 20 32 31 39 38  848, 92684, 2198
1200: 32 34 2c 20 32 31 35 38 35 39 2c 20 36 32 38 32  24, 215859, 6282
1210: 31 2c 20 31 37 32 34 30 39 2c 20 31 30 39 32 33  1, 172409, 10923
1220: 35 2c 0d 0a 33 38 35 36 33 2c 20 31 34 38 38 35  5,..38563, 14885
1230: 34 2c 20 32 34 37 34 32 2c 20 31 37 34 30 36 38  4, 24742, 174068
1240: 2c 20 32 30 35 30 30 35 2c 20 37 35 39 32 32 2c  , 205005, 75922,
1250: 20 38 37 33 31 36 2c 20 35 35 34 32 2c 20 35 37   87316, 5542, 57
1260: 34 38 34 2c 20 34 30 37 39 32 2c 0d 0a 32 35 32  484, 40792,..252
1270: 32 39 2c 20 31 35 32 32 31 36 2c 20 32 31 35 34  29, 152216, 2154
1280: 37 2c 20 32 32 32 30 33 2c 20 38 34 37 31 32 2c  7, 22203, 84712,
1290: 20 32 33 31 35 32 32 2c 20 32 33 35 37 30 33 2c   231522, 235703,
12a0: 20 31 38 34 38 39 35 2c 20 31 30 30 37 38 37 2c   184895, 100787,
12b0: 20 31 37 34 34 34 30 2c 0d 0a 31 35 36 39 30 34   174440,..156904
12c0: 2c 20 38 34 38 39 38 2c 20 31 38 35 35 36 38 2c  , 84898, 185568,
12d0: 20 31 30 38 37 33 32 2c 20 32 36 30 30 39 38 2c   108732, 260098,
12e0: 20 38 39 34 38 38 2c 20 32 32 31 36 30 34 2c 20   89488, 221604, 
12f0: 31 30 34 35 35 35 2c 20 31 36 35 37 37 35 2c 20  104555, 165775, 
1300: 39 30 34 34 34 2c 0d 0a 38 31 39 35 32 2c 20 31  90444,..81952, 1
1310: 34 39 36 37 31 2c 20 32 30 39 36 37 34 2c 20 32  49671, 209674, 2
1320: 32 31 38 35 2c 20 34 35 34 32 30 2c 20 34 31 39  2185, 45420, 419
1330: 32 38 2c 20 31 36 30 39 38 2c 20 36 35 33 32 34  28, 16098, 65324
1340: 2c 20 39 30 38 37 30 2c 20 33 35 32 34 33 7d 3b  , 90870, 35243};
1350: 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74  ...  vector <int
1360: 3e 20 61 28 61 5f 2c 20 61 5f 2b 73 69 7a 65 6f  > a(a_, a_+sizeo
1370: 66 28 61 5f 29 2f 73 69 7a 65 6f 66 28 2a 61 5f  f(a_)/sizeof(*a_
1380: 29 29 3b 20 0d 0a 09 69 6e 74 20 62 5f 5b 5d 20  )); ...int b_[] 
1390: 3d 20 7b 31 35 30 32 38 39 2c 20 31 33 35 31 33  = {150289, 13513
13a0: 39 2c 20 36 39 38 34 31 2c 20 32 32 37 32 32 36  9, 69841, 227226
13b0: 2c 20 31 37 37 34 32 37 2c 20 32 33 30 33 31 34  , 177427, 230314
13c0: 2c 20 31 39 39 31 37 35 2c 20 38 31 35 37 32 2c  , 199175, 81572,
13d0: 20 32 32 30 34 36 38 2c 20 31 35 31 30 34 39 2c   220468, 151049,
13e0: 0d 0a 34 30 30 30 39 2c 20 31 34 35 39 36 33 2c  ..40009, 145963,
13f0: 20 31 31 35 32 34 36 2c 20 32 35 32 39 33 32 2c   115246, 252932,
1400: 20 32 36 33 36 35 31 2c 20 33 38 34 33 34 2c 20   263651, 38434, 
1410: 31 32 30 30 39 36 2c 20 36 39 35 37 36 2c 20 32  120096, 69576, 2
1420: 39 37 38 39 2c 20 31 31 35 30 34 36 2c 0d 0a 33  9789, 115046,..3
1430: 33 33 31 30 2c 20 32 36 30 37 37 31 2c 20 35 37  3310, 260771, 57
1440: 32 33 2c 20 38 30 37 33 33 2c 20 31 30 37 38 36  23, 80733, 10786
1450: 34 2c 20 31 34 32 34 34 37 2c 20 32 33 35 34 39  4, 142447, 23549
1460: 30 2c 20 32 34 32 31 34 39 2c 20 31 32 34 35 36  0, 242149, 12456
1470: 34 2c 20 31 33 34 36 30 32 2c 0d 0a 32 34 35 39  4, 134602,..2459
1480: 36 32 2c 20 37 30 37 38 2c 20 32 31 35 38 31 36  62, 7078, 215816
1490: 2c 20 32 31 39 38 36 34 2c 20 31 39 30 34 39 39  , 219864, 190499
14a0: 2c 20 32 31 30 32 33 37 2c 20 32 31 32 38 39 34  , 210237, 212894
14b0: 2c 20 31 34 32 37 36 30 2c 20 31 32 36 34 37 32  , 142760, 126472
14c0: 2c 20 32 30 31 39 33 35 2c 0d 0a 31 31 39 33 30  , 201935,..11930
14d0: 38 2c 20 31 32 30 32 31 31 2c 20 32 33 35 32 33  8, 120211, 23523
14e0: 35 2c 20 31 39 34 34 36 2c 20 38 37 33 31 34 2c  5, 19446, 87314,
14f0: 20 31 37 32 38 36 2c 20 36 31 39 39 30 2c 20 31   17286, 61990, 1
1500: 30 32 30 35 30 2c 20 32 36 31 38 31 32 2c 20 32  02050, 261812, 2
1510: 35 37 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20  57};...  vector 
1520: 3c 69 6e 74 3e 20 62 28 62 5f 2c 20 62 5f 2b 73  <int> b(b_, b_+s
1530: 69 7a 65 6f 66 28 62 5f 29 2f 73 69 7a 65 6f 66  izeof(b_)/sizeof
1540: 28 2a 62 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 5f  (*b_)); ...int _
1550: 20 3d 20 37 31 34 38 36 37 30 3b 20 0d 0a 45 4e   = 7148670; ..EN
1560: 44 0d 0a 43 41 53 45 28 33 29 0d 0a 09 69 6e 74  D..CASE(3)...int
1570: 20 4c 20 3d 20 31 30 30 30 30 30 30 3b 20 0d 0a   L = 1000000; ..
1580: 09 69 6e 74 20 61 5f 5b 5d 20 3d 20 7b 37 30 36  .int a_[] = {706
1590: 32 39 32 2c 20 37 35 36 32 31 34 2c 20 34 39 30  292, 756214, 490
15a0: 30 34 38 2c 20 32 32 38 37 39 31 2c 20 35 36 37  048, 228791, 567
15b0: 38 30 35 2c 20 33 35 33 39 30 30 2c 20 36 34 30  805, 353900, 640
15c0: 33 39 33 2c 20 35 36 32 34 39 36 2c 20 32 31 37  393, 562496, 217
15d0: 35 33 33 2c 20 39 33 34 31 34 39 2c 0d 0a 39 33  533, 934149,..93
15e0: 38 36 34 34 2c 20 31 32 37 34 38 30 2c 20 37 37  8644, 127480, 77
15f0: 37 31 33 34 2c 20 39 39 39 31 34 34 2c 20 34 31  7134, 999144, 41
1600: 34 38 35 2c 20 35 34 34 30 35 31 2c 20 34 31 37  485, 544051, 417
1610: 39 38 37 2c 20 37 36 37 34 31 35 2c 20 39 37 31  987, 767415, 971
1620: 36 36 32 2c 20 39 35 39 30 32 32 2c 0d 0a 36 37  662, 959022,..67
1630: 30 35 36 33 2c 20 33 34 30 36 35 2c 20 35 31 38  0563, 34065, 518
1640: 31 38 33 2c 20 37 35 30 35 37 34 2c 20 35 34 36  183, 750574, 546
1650: 35 37 36 2c 20 32 30 37 37 35 38 2c 20 31 35 39  576, 207758, 159
1660: 39 33 32 2c 20 34 32 39 33 34 35 2c 20 36 37 30  932, 429345, 670
1670: 35 31 33 2c 20 32 37 31 39 30 31 2c 0d 0a 34 37  513, 271901,..47
1680: 36 30 36 32 2c 20 33 39 32 37 32 31 2c 20 37 37  6062, 392721, 77
1690: 34 37 33 33 2c 20 35 30 32 35 38 36 2c 20 39 31  4733, 502586, 91
16a0: 35 34 33 36 2c 20 31 32 30 32 38 30 2c 20 39 35  5436, 120280, 95
16b0: 31 37 32 39 2c 20 36 39 39 38 35 39 2c 20 35 38  1729, 699859, 58
16c0: 31 37 37 30 2c 20 32 36 38 39 36 36 2c 0d 0a 37  1770, 268966,..7
16d0: 39 33 39 32 2c 20 38 38 38 36 30 31 2c 20 33 37  9392, 888601, 37
16e0: 38 38 32 39 2c 20 33 35 30 31 39 38 2c 20 39 33  8829, 350198, 93
16f0: 39 34 35 39 2c 20 36 34 34 39 38 33 2c 20 36 30  9459, 644983, 60
1700: 35 38 36 32 2c 20 37 32 31 33 30 35 2c 20 32 36  5862, 721305, 26
1710: 39 32 33 32 2c 20 31 33 37 35 38 37 7d 3b 0d 0a  9232, 137587};..
1720: 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20  .  vector <int> 
1730: 61 28 61 5f 2c 20 61 5f 2b 73 69 7a 65 6f 66 28  a(a_, a_+sizeof(
1740: 61 5f 29 2f 73 69 7a 65 6f 66 28 2a 61 5f 29 29  a_)/sizeof(*a_))
1750: 3b 20 0d 0a 09 69 6e 74 20 62 5f 5b 5d 20 3d 20  ; ...int b_[] = 
1760: 7b 33 32 32 34 36 38 2c 20 36 37 33 35 33 34 2c  {322468, 673534,
1770: 20 38 33 32 32 33 2c 20 35 35 31 37 33 33 2c 20   83223, 551733, 
1780: 33 34 31 33 31 30 2c 20 34 38 35 30 36 34 2c 20  341310, 485064, 
1790: 38 38 35 34 31 35 2c 20 39 32 37 35 32 36 2c 20  885415, 927526, 
17a0: 31 35 39 34 30 32 2c 20 32 38 31 34 34 2c 0d 0a  159402, 28144,..
17b0: 34 34 31 36 31 39 2c 20 33 30 35 35 33 30 2c 20  441619, 305530, 
17c0: 38 38 33 31 34 39 2c 20 34 31 33 37 34 35 2c 20  883149, 413745, 
17d0: 39 33 32 36 39 34 2c 20 32 31 34 38 36 32 2c 20  932694, 214862, 
17e0: 36 37 37 34 30 31 2c 20 31 30 34 33 35 36 2c 20  677401, 104356, 
17f0: 38 33 36 35 38 30 2c 20 33 30 30 35 38 30 2c 0d  836580, 300580,.
1800: 0a 34 30 39 39 34 32 2c 20 37 34 38 34 34 34 2c  .409942, 748444,
1810: 20 37 34 34 32 30 35 2c 20 31 31 39 30 35 31 2c   744205, 119051,
1820: 20 39 39 39 32 38 36 2c 20 34 36 32 35 30 38 2c   999286, 462508,
1830: 20 39 38 34 33 34 36 2c 20 38 38 37 37 37 33 2c   984346, 887773,
1840: 20 38 35 36 36 35 35 2c 20 32 34 35 35 35 39 2c   856655, 245559,
1850: 0d 0a 34 31 38 37 36 33 2c 20 38 34 30 32 36 36  ..418763, 840266
1860: 2c 20 39 39 39 37 37 35 2c 20 39 36 32 39 32 37  , 999775, 962927
1870: 2c 20 37 37 39 35 37 30 2c 20 34 38 38 33 39 34  , 779570, 488394
1880: 2c 20 37 36 30 35 39 31 2c 20 33 32 36 33 32 35  , 760591, 326325
1890: 2c 20 32 30 36 39 34 38 2c 20 31 33 39 39 39 2c  , 206948, 13999,
18a0: 0d 0a 32 38 35 34 36 37 2c 20 34 30 31 35 36 32  ..285467, 401562
18b0: 2c 20 37 38 36 32 30 39 2c 20 31 36 39 38 34 37  , 786209, 169847
18c0: 2c 20 31 37 31 33 32 36 2c 20 32 39 30 31 2c 20  , 171326, 2901, 
18d0: 32 39 36 35 33 31 2c 20 35 37 32 30 33 35 2c 20  296531, 572035, 
18e0: 33 36 34 39 32 30 2c 20 39 33 39 30 34 36 7d 3b  364920, 939046};
18f0: 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74  ...  vector <int
1900: 3e 20 62 28 62 5f 2c 20 62 5f 2b 73 69 7a 65 6f  > b(b_, b_+sizeo
1910: 66 28 62 5f 29 2f 73 69 7a 65 6f 66 28 2a 62 5f  f(b_)/sizeof(*b_
1920: 29 29 3b 20 0d 0a 09 69 6e 74 20 5f 20 3d 20 34  )); ...int _ = 4
1930: 35 36 37 30 35 30 31 3b 20 0d 0a 45 4e 44 0d 0a  5670501; ..END..
1940: 2f 2a 0d 0a 43 41 53 45 28 34 29 0d 0a 09 69 6e  /*..CASE(4)...in
1950: 74 20 4c 20 3d 20 3b 20 0d 0a 09 69 6e 74 20 61  t L = ; ...int a
1960: 5f 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63 74  _[] = ;...  vect
1970: 6f 72 20 3c 69 6e 74 3e 20 61 28 61 5f 2c 20 61  or <int> a(a_, a
1980: 5f 2b 73 69 7a 65 6f 66 28 61 5f 29 2f 73 69 7a  _+sizeof(a_)/siz
1990: 65 6f 66 28 2a 61 5f 29 29 3b 20 0d 0a 09 69 6e  eof(*a_)); ...in
19a0: 74 20 62 5f 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76  t b_[] = ;...  v
19b0: 65 63 74 6f 72 20 3c 69 6e 74 3e 20 62 28 62 5f  ector <int> b(b_
19c0: 2c 20 62 5f 2b 73 69 7a 65 6f 66 28 62 5f 29 2f  , b_+sizeof(b_)/
19d0: 73 69 7a 65 6f 66 28 2a 62 5f 29 29 3b 20 0d 0a  sizeof(*b_)); ..
19e0: 09 69 6e 74 20 5f 20 3d 20 3b 20 0d 0a 45 4e 44  .int _ = ; ..END
19f0: 0d 0a 43 41 53 45 28 35 29 0d 0a 09 69 6e 74 20  ..CASE(5)...int 
1a00: 4c 20 3d 20 3b 20 0d 0a 09 69 6e 74 20 61 5f 5b  L = ; ...int a_[
1a10: 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63 74 6f 72  ] = ;...  vector
1a20: 20 3c 69 6e 74 3e 20 61 28 61 5f 2c 20 61 5f 2b   <int> a(a_, a_+
1a30: 73 69 7a 65 6f 66 28 61 5f 29 2f 73 69 7a 65 6f  sizeof(a_)/sizeo
1a40: 66 28 2a 61 5f 29 29 3b 20 0d 0a 09 69 6e 74 20  f(*a_)); ...int 
1a50: 62 5f 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63  b_[] = ;...  vec
1a60: 74 6f 72 20 3c 69 6e 74 3e 20 62 28 62 5f 2c 20  tor <int> b(b_, 
1a70: 62 5f 2b 73 69 7a 65 6f 66 28 62 5f 29 2f 73 69  b_+sizeof(b_)/si
1a80: 7a 65 6f 66 28 2a 62 5f 29 29 3b 20 0d 0a 09 69  zeof(*b_)); ...i
1a90: 6e 74 20 5f 20 3d 20 3b 20 0d 0a 45 4e 44 0d 0a  nt _ = ; ..END..
1aa0: 0d 0a 2a 2f 0d 0a 7d 0d 0a 2f 2f 20 45 4e 44 20  ..*/..}..// END 
1ab0: 43 55 54 20 48 45 52 45 0d 0a                    CUT HERE..