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