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 45 6c 6c 79 P;....class Elly
01a0: 73 50 61 69 72 69 6e 67 20 7b 20 70 75 62 6c 69 sPairing { publi
01b0: 63 3a 0d 0a 09 69 6e 74 20 67 65 74 4d 61 78 28 c:...int getMax(
01c0: 69 6e 74 20 4d 2c 20 76 65 63 74 6f 72 20 3c 69 int M, vector <i
01d0: 6e 74 3e 20 63 6f 75 6e 74 2c 20 76 65 63 74 6f nt> count, vecto
01e0: 72 20 3c 69 6e 74 3e 20 66 69 72 73 74 2c 20 76 r <int> first, v
01f0: 65 63 74 6f 72 20 3c 69 6e 74 3e 20 6d 75 6c 74 ector <int> mult
0200: 2c 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 61 , vector <int> a
0210: 64 64 29 0d 0a 09 7b 0d 0a 09 09 69 6e 74 20 61 dd)...{....int a
0220: 6c 6c 20 3d 20 61 63 63 75 6d 75 6c 61 74 65 28 ll = accumulate(
0230: 63 6f 75 6e 74 2e 62 65 67 69 6e 28 29 2c 20 63 count.begin(), c
0240: 6f 75 6e 74 2e 65 6e 64 28 29 2c 20 30 29 3b 0d ount.end(), 0);.
0250: 0a 09 09 69 6e 74 20 6d 61 78 5f 63 6e 74 20 3d ...int max_cnt =
0260: 20 6d 61 78 46 72 65 71 28 4d 2c 20 30 2c 20 4d maxFreq(M, 0, M
0270: 2c 20 63 6f 75 6e 74 2c 20 66 69 72 73 74 2c 20 , count, first,
0280: 6d 75 6c 74 2c 20 61 64 64 29 3b 0d 0a 0d 0a 09 mult, add);.....
0290: 09 69 66 28 6d 61 78 5f 63 6e 74 20 3c 3d 20 61 .if(max_cnt <= a
02a0: 6c 6c 2f 32 29 0d 0a 09 09 09 72 65 74 75 72 6e ll/2).....return
02b0: 20 61 6c 6c 2f 32 3b 0d 0a 09 09 65 6c 73 65 0d all/2;....else.
02c0: 0a 09 09 09 72 65 74 75 72 6e 20 61 6c 6c 20 2d ....return all -
02d0: 20 6d 61 78 5f 63 6e 74 3b 0d 0a 09 7d 0d 0a 0d max_cnt;...}...
02e0: 0a 09 69 6e 74 20 6d 61 78 46 72 65 71 28 75 6e ..int maxFreq(un
02f0: 73 69 67 6e 65 64 20 4d 2c 20 69 6e 74 20 4c 2c signed M, int L,
0300: 20 69 6e 74 20 52 2c 0d 0a 09 09 63 6f 6e 73 74 int R,....const
0310: 20 76 65 63 74 6f 72 3c 69 6e 74 3e 26 20 63 6f vector<int>& co
0320: 75 6e 74 2c 20 63 6f 6e 73 74 20 76 65 63 74 6f unt, const vecto
0330: 72 3c 69 6e 74 3e 26 20 66 69 72 73 74 2c 20 63 r<int>& first, c
0340: 6f 6e 73 74 20 76 65 63 74 6f 72 3c 69 6e 74 3e onst vector<int>
0350: 26 20 6d 75 6c 74 2c 20 63 6f 6e 73 74 20 76 65 & mult, const ve
0360: 63 74 6f 72 3c 69 6e 74 3e 26 20 61 64 64 29 0d ctor<int>& add).
0370: 0a 09 7b 0d 0a 09 09 73 74 61 74 69 63 20 63 6f ..{....static co
0380: 6e 73 74 20 69 6e 74 20 5a 20 3d 20 31 3c 3c 32 nst int Z = 1<<2
0390: 30 3b 0d 0a 09 09 69 66 28 52 2d 4c 20 3c 3d 20 0;....if(R-L <=
03a0: 5a 29 20 7b 0d 0a 09 09 09 69 6e 74 20 66 72 65 Z) {.....int fre
03b0: 71 5b 5a 5d 20 3d 20 7b 7d 3b 0d 0a 09 09 09 66 q[Z] = {};.....f
03c0: 6f 72 28 69 6e 74 20 69 3d 30 3b 20 69 3c 63 6f or(int i=0; i<co
03d0: 75 6e 74 2e 73 69 7a 65 28 29 3b 20 2b 2b 69 29 unt.size(); ++i)
03e0: 20 7b 0d 0a 09 09 09 09 75 6e 73 69 67 6e 65 64 {......unsigned
03f0: 20 63 20 3d 20 63 6f 75 6e 74 5b 69 5d 3b 0d 0a c = count[i];..
0400: 09 09 09 09 75 6e 73 69 67 6e 65 64 20 66 20 3d ....unsigned f =
0410: 20 66 69 72 73 74 5b 69 5d 3b 0d 0a 09 09 09 09 first[i];......
0420: 75 6e 73 69 67 6e 65 64 20 6d 20 3d 20 6d 75 6c unsigned m = mul
0430: 74 5b 69 5d 3b 0d 0a 09 09 09 09 75 6e 73 69 67 t[i];......unsig
0440: 6e 65 64 20 61 20 3d 20 61 64 64 5b 69 5d 3b 0d ned a = add[i];.
0450: 0a 09 09 09 09 66 6f 72 28 75 6e 73 69 67 6e 65 .....for(unsigne
0460: 64 20 6b 3d 30 3b 20 6b 3c 63 3b 20 2b 2b 6b 29 d k=0; k<c; ++k)
0470: 20 7b 0d 0a 09 09 09 09 09 69 66 28 4c 3c 3d 66 {.......if(L<=f
0480: 20 26 26 20 66 3c 52 29 20 66 72 65 71 5b 66 2d && f<R) freq[f-
0490: 4c 5d 2b 2b 3b 0d 0a 09 09 09 09 09 66 3d 28 66 L]++;.......f=(f
04a0: 2a 6d 2b 61 29 26 28 4d 2d 31 29 3b 0d 0a 09 09 *m+a)&(M-1);....
04b0: 09 09 7d 0d 0a 09 09 09 7d 0d 0a 09 09 09 72 65 ..}.....}.....re
04c0: 74 75 72 6e 20 2a 6d 61 78 5f 65 6c 65 6d 65 6e turn *max_elemen
04d0: 74 28 66 72 65 71 2c 20 66 72 65 71 2b 28 52 2d t(freq, freq+(R-
04e0: 4c 29 29 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 09 69 L));....}......i
04f0: 6e 74 20 66 72 65 71 5b 32 5d 20 3d 20 7b 7d 2c nt freq[2] = {},
0500: 20 43 20 3d 20 4c 2b 28 52 2d 4c 29 2f 32 3b 0d C = L+(R-L)/2;.
0510: 0a 09 09 66 6f 72 28 69 6e 74 20 69 3d 30 3b 20 ...for(int i=0;
0520: 69 3c 63 6f 75 6e 74 2e 73 69 7a 65 28 29 3b 20 i<count.size();
0530: 2b 2b 69 29 20 7b 0d 0a 09 09 09 75 6e 73 69 67 ++i) {.....unsig
0540: 6e 65 64 20 63 20 3d 20 63 6f 75 6e 74 5b 69 5d ned c = count[i]
0550: 3b 0d 0a 09 09 09 75 6e 73 69 67 6e 65 64 20 66 ;.....unsigned f
0560: 20 3d 20 66 69 72 73 74 5b 69 5d 3b 0d 0a 09 09 = first[i];....
0570: 09 75 6e 73 69 67 6e 65 64 20 6d 20 3d 20 6d 75 .unsigned m = mu
0580: 6c 74 5b 69 5d 3b 0d 0a 09 09 09 75 6e 73 69 67 lt[i];.....unsig
0590: 6e 65 64 20 61 20 3d 20 61 64 64 5b 69 5d 3b 0d ned a = add[i];.
05a0: 0a 09 09 09 66 6f 72 28 75 6e 73 69 67 6e 65 64 ....for(unsigned
05b0: 20 6b 3d 30 3b 20 6b 3c 63 3b 20 2b 2b 6b 29 20 k=0; k<c; ++k)
05c0: 7b 0d 0a 09 09 09 09 69 66 28 4c 3c 3d 66 20 26 {......if(L<=f &
05d0: 26 20 66 3c 52 29 0d 0a 09 09 09 09 09 66 72 65 & f<R).......fre
05e0: 71 5b 66 3c 43 20 3f 20 30 20 3a 20 31 5d 2b 2b q[f<C ? 0 : 1]++
05f0: 3b 0d 0a 09 09 09 09 66 3d 28 66 2a 6d 2b 61 29 ;......f=(f*m+a)
0600: 26 28 4d 2d 31 29 3b 0d 0a 09 09 09 7d 0d 0a 09 &(M-1);.....}...
0610: 09 7d 0d 0a 09 09 69 66 28 66 72 65 71 5b 30 5d .}....if(freq[0]
0620: 20 3c 20 66 72 65 71 5b 31 5d 29 0d 0a 09 09 09 < freq[1]).....
0630: 72 65 74 75 72 6e 20 6d 61 78 46 72 65 71 28 4d return maxFreq(M
0640: 2c 20 43 2c 20 52 2c 20 63 6f 75 6e 74 2c 20 66 , C, R, count, f
0650: 69 72 73 74 2c 20 6d 75 6c 74 2c 20 61 64 64 29 irst, mult, add)
0660: 3b 0d 0a 09 09 65 6c 73 65 0d 0a 09 09 09 72 65 ;....else.....re
0670: 74 75 72 6e 20 6d 61 78 46 72 65 71 28 4d 2c 20 turn maxFreq(M,
0680: 4c 2c 20 43 2c 20 63 6f 75 6e 74 2c 20 66 69 72 L, C, count, fir
0690: 73 74 2c 20 6d 75 6c 74 2c 20 61 64 64 29 3b 0d st, mult, add);.
06a0: 0a 09 7d 0d 0a 7d 3b 0d 0a 0d 0a 2f 2f 20 42 45 ..}..};....// BE
06b0: 47 49 4e 20 43 55 54 20 48 45 52 45 0d 0a 23 69 GIN CUT HERE..#i
06c0: 6e 63 6c 75 64 65 20 3c 63 74 69 6d 65 3e 0d 0a nclude <ctime>..
06d0: 64 6f 75 62 6c 65 20 73 74 61 72 74 5f 74 69 6d double start_tim
06e0: 65 3b 20 73 74 72 69 6e 67 20 74 69 6d 65 72 28 e; string timer(
06f0: 29 0d 0a 20 7b 20 6f 73 74 72 69 6e 67 73 74 72 ).. { ostringstr
0700: 65 61 6d 20 6f 73 3b 20 6f 73 20 3c 3c 20 22 20 eam os; os << "
0710: 28 22 20 3c 3c 20 69 6e 74 28 28 63 6c 6f 63 6b (" << int((clock
0720: 28 29 2d 73 74 61 72 74 5f 74 69 6d 65 29 2f 43 ()-start_time)/C
0730: 4c 4f 43 4b 53 5f 50 45 52 5f 53 45 43 2a 31 30 LOCKS_PER_SEC*10
0740: 30 30 29 20 3c 3c 20 22 20 6d 73 65 63 29 22 3b 00) << " msec)";
0750: 20 72 65 74 75 72 6e 20 6f 73 2e 73 74 72 28 29 return os.str()
0760: 3b 20 7d 0d 0a 74 65 6d 70 6c 61 74 65 3c 74 79 ; }..template<ty
0770: 70 65 6e 61 6d 65 20 54 3e 20 6f 73 74 72 65 61 pename T> ostrea
0780: 6d 26 20 6f 70 65 72 61 74 6f 72 3c 3c 28 6f 73 m& operator<<(os
0790: 74 72 65 61 6d 26 20 6f 73 2c 20 63 6f 6e 73 74 tream& os, const
07a0: 20 76 65 63 74 6f 72 3c 54 3e 26 20 76 29 0d 0a vector<T>& v)..
07b0: 20 7b 20 6f 73 20 3c 3c 20 22 7b 20 22 3b 0d 0a { os << "{ ";..
07c0: 20 20 20 66 6f 72 28 74 79 70 65 6e 61 6d 65 20 for(typename
07d0: 76 65 63 74 6f 72 3c 54 3e 3a 3a 63 6f 6e 73 74 vector<T>::const
07e0: 5f 69 74 65 72 61 74 6f 72 20 69 74 3d 76 2e 62 _iterator it=v.b
07f0: 65 67 69 6e 28 29 3b 20 69 74 21 3d 76 2e 65 6e egin(); it!=v.en
0800: 64 28 29 3b 20 2b 2b 69 74 29 0d 0a 20 20 20 6f d(); ++it).. o
0810: 73 20 3c 3c 20 27 5c 22 27 20 3c 3c 20 2a 69 74 s << '\"' << *it
0820: 20 3c 3c 20 27 5c 22 27 20 3c 3c 20 28 69 74 2b << '\"' << (it+
0830: 31 3d 3d 76 2e 65 6e 64 28 29 20 3f 20 22 22 20 1==v.end() ? ""
0840: 3a 20 22 2c 20 22 29 3b 20 6f 73 20 3c 3c 20 22 : ", "); os << "
0850: 20 7d 22 3b 20 72 65 74 75 72 6e 20 6f 73 3b 20 }"; return os;
0860: 7d 0d 0a 76 6f 69 64 20 76 65 72 69 66 79 5f 63 }..void verify_c
0870: 61 73 65 28 63 6f 6e 73 74 20 69 6e 74 26 20 45 ase(const int& E
0880: 78 70 65 63 74 65 64 2c 20 63 6f 6e 73 74 20 69 xpected, const i
0890: 6e 74 26 20 52 65 63 65 69 76 65 64 29 20 7b 0d nt& Received) {.
08a0: 0a 20 62 6f 6f 6c 20 6f 6b 20 3d 20 28 45 78 70 . bool ok = (Exp
08b0: 65 63 74 65 64 20 3d 3d 20 52 65 63 65 69 76 65 ected == Receive
08c0: 64 29 3b 0d 0a 20 69 66 28 6f 6b 29 20 63 65 72 d);.. if(ok) cer
08d0: 72 20 3c 3c 20 22 50 41 53 53 45 44 22 20 3c 3c r << "PASSED" <<
08e0: 20 74 69 6d 65 72 28 29 20 3c 3c 20 65 6e 64 6c timer() << endl
08f0: 3b 20 20 65 6c 73 65 20 7b 20 63 65 72 72 20 3c ; else { cerr <
0900: 3c 20 22 46 41 49 4c 45 44 22 20 3c 3c 20 74 69 < "FAILED" << ti
0910: 6d 65 72 28 29 20 3c 3c 20 65 6e 64 6c 3b 0d 0a mer() << endl;..
0920: 20 63 65 72 72 20 3c 3c 20 22 5c 74 6f 3a 20 5c cerr << "\to: \
0930: 22 22 20 3c 3c 20 45 78 70 65 63 74 65 64 20 3c "" << Expected <
0940: 3c 20 27 5c 22 27 20 3c 3c 20 65 6e 64 6c 20 3c < '\"' << endl <
0950: 3c 20 22 5c 74 78 3a 20 5c 22 22 20 3c 3c 20 52 < "\tx: \"" << R
0960: 65 63 65 69 76 65 64 20 3c 3c 20 27 5c 22 27 20 eceived << '\"'
0970: 3c 3c 20 65 6e 64 6c 3b 20 7d 20 7d 0d 0a 23 64 << endl; } }..#d
0980: 65 66 69 6e 65 20 43 41 53 45 28 4e 29 20 7b 63 efine CASE(N) {c
0990: 65 72 72 20 3c 3c 20 22 54 65 73 74 20 43 61 73 err << "Test Cas
09a0: 65 20 23 22 20 3c 3c 20 4e 20 3c 3c 20 22 2e 2e e #" << N << "..
09b0: 2e 22 20 3c 3c 20 66 6c 75 73 68 3b 20 73 74 61 ." << flush; sta
09c0: 72 74 5f 74 69 6d 65 3d 63 6c 6f 63 6b 28 29 3b rt_time=clock();
09d0: 0d 0a 23 64 65 66 69 6e 65 20 45 4e 44 09 20 76 ..#define END. v
09e0: 65 72 69 66 79 5f 63 61 73 65 28 5f 2c 20 45 6c erify_case(_, El
09f0: 6c 79 73 50 61 69 72 69 6e 67 28 29 2e 67 65 74 lysPairing().get
0a00: 4d 61 78 28 4d 2c 20 63 6f 75 6e 74 2c 20 66 69 Max(M, count, fi
0a10: 72 73 74 2c 20 6d 75 6c 74 2c 20 61 64 64 29 29 rst, mult, add))
0a20: 3b 7d 0d 0a 69 6e 74 20 6d 61 69 6e 28 29 7b 0d ;}..int main(){.
0a30: 0a 0d 0a 43 41 53 45 28 30 29 0d 0a 09 69 6e 74 ...CASE(0)...int
0a40: 20 4d 20 3d 20 31 36 3b 20 0d 0a 09 69 6e 74 20 M = 16; ...int
0a50: 63 6f 75 6e 74 5f 5b 5d 20 3d 20 7b 34 2c 20 37 count_[] = {4, 7
0a60: 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 };... vector <i
0a70: 6e 74 3e 20 63 6f 75 6e 74 28 63 6f 75 6e 74 5f nt> count(count_
0a80: 2c 20 63 6f 75 6e 74 5f 2b 73 69 7a 65 6f 66 28 , count_+sizeof(
0a90: 63 6f 75 6e 74 5f 29 2f 73 69 7a 65 6f 66 28 2a count_)/sizeof(*
0aa0: 63 6f 75 6e 74 5f 29 29 3b 20 0d 0a 09 69 6e 74 count_)); ...int
0ab0: 20 66 69 72 73 74 5f 5b 5d 20 3d 20 7b 35 2c 20 first_[] = {5,
0ac0: 33 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 3};... vector <
0ad0: 69 6e 74 3e 20 66 69 72 73 74 28 66 69 72 73 74 int> first(first
0ae0: 5f 2c 20 66 69 72 73 74 5f 2b 73 69 7a 65 6f 66 _, first_+sizeof
0af0: 28 66 69 72 73 74 5f 29 2f 73 69 7a 65 6f 66 28 (first_)/sizeof(
0b00: 2a 66 69 72 73 74 5f 29 29 3b 20 0d 0a 09 69 6e *first_)); ...in
0b10: 74 20 6d 75 6c 74 5f 5b 5d 20 3d 20 7b 32 2c 20 t mult_[] = {2,
0b20: 33 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 3};... vector <
0b30: 69 6e 74 3e 20 6d 75 6c 74 28 6d 75 6c 74 5f 2c int> mult(mult_,
0b40: 20 6d 75 6c 74 5f 2b 73 69 7a 65 6f 66 28 6d 75 mult_+sizeof(mu
0b50: 6c 74 5f 29 2f 73 69 7a 65 6f 66 28 2a 6d 75 6c lt_)/sizeof(*mul
0b60: 74 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 61 64 64 t_)); ...int add
0b70: 5f 5b 5d 20 3d 20 7b 31 2c 20 30 7d 3b 0d 0a 09 _[] = {1, 0};...
0b80: 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 61 vector <int> a
0b90: 64 64 28 61 64 64 5f 2c 20 61 64 64 5f 2b 73 69 dd(add_, add_+si
0ba0: 7a 65 6f 66 28 61 64 64 5f 29 2f 73 69 7a 65 6f zeof(add_)/sizeo
0bb0: 66 28 2a 61 64 64 5f 29 29 3b 20 0d 0a 09 69 6e f(*add_)); ...in
0bc0: 74 20 5f 20 3d 20 35 3b 20 0d 0a 45 4e 44 0d 0a t _ = 5; ..END..
0bd0: 43 41 53 45 28 31 29 0d 0a 09 69 6e 74 20 4d 20 CASE(1)...int M
0be0: 3d 20 38 3b 20 0d 0a 09 69 6e 74 20 63 6f 75 6e = 8; ...int coun
0bf0: 74 5f 5b 5d 20 3d 20 7b 36 2c 20 34 2c 20 33 7d t_[] = {6, 4, 3}
0c00: 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e ;... vector <in
0c10: 74 3e 20 63 6f 75 6e 74 28 63 6f 75 6e 74 5f 2c t> count(count_,
0c20: 20 63 6f 75 6e 74 5f 2b 73 69 7a 65 6f 66 28 63 count_+sizeof(c
0c30: 6f 75 6e 74 5f 29 2f 73 69 7a 65 6f 66 28 2a 63 ount_)/sizeof(*c
0c40: 6f 75 6e 74 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 ount_)); ...int
0c50: 66 69 72 73 74 5f 5b 5d 20 3d 20 7b 30 2c 20 33 first_[] = {0, 3
0c60: 2c 20 32 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 , 2};... vector
0c70: 20 3c 69 6e 74 3e 20 66 69 72 73 74 28 66 69 72 <int> first(fir
0c80: 73 74 5f 2c 20 66 69 72 73 74 5f 2b 73 69 7a 65 st_, first_+size
0c90: 6f 66 28 66 69 72 73 74 5f 29 2f 73 69 7a 65 6f of(first_)/sizeo
0ca0: 66 28 2a 66 69 72 73 74 5f 29 29 3b 20 0d 0a 09 f(*first_)); ...
0cb0: 69 6e 74 20 6d 75 6c 74 5f 5b 5d 20 3d 20 7b 33 int mult_[] = {3
0cc0: 2c 20 37 2c 20 35 7d 3b 0d 0a 09 20 20 76 65 63 , 7, 5};... vec
0cd0: 74 6f 72 20 3c 69 6e 74 3e 20 6d 75 6c 74 28 6d tor <int> mult(m
0ce0: 75 6c 74 5f 2c 20 6d 75 6c 74 5f 2b 73 69 7a 65 ult_, mult_+size
0cf0: 6f 66 28 6d 75 6c 74 5f 29 2f 73 69 7a 65 6f 66 of(mult_)/sizeof
0d00: 28 2a 6d 75 6c 74 5f 29 29 3b 20 0d 0a 09 69 6e (*mult_)); ...in
0d10: 74 20 61 64 64 5f 5b 5d 20 3d 20 7b 30 2c 20 33 t add_[] = {0, 3
0d20: 2c 20 32 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 , 2};... vector
0d30: 20 3c 69 6e 74 3e 20 61 64 64 28 61 64 64 5f 2c <int> add(add_,
0d40: 20 61 64 64 5f 2b 73 69 7a 65 6f 66 28 61 64 64 add_+sizeof(add
0d50: 5f 29 2f 73 69 7a 65 6f 66 28 2a 61 64 64 5f 29 _)/sizeof(*add_)
0d60: 29 3b 20 0d 0a 09 69 6e 74 20 5f 20 3d 20 35 3b ); ...int _ = 5;
0d70: 20 0d 0a 45 4e 44 0d 0a 43 41 53 45 28 32 29 0d ..END..CASE(2).
0d80: 0a 09 69 6e 74 20 4d 20 3d 20 31 32 38 3b 20 0d ..int M = 128; .
0d90: 0a 09 69 6e 74 20 63 6f 75 6e 74 5f 5b 5d 20 3d ..int count_[] =
0da0: 20 7b 34 32 2c 20 31 33 2c 20 36 36 36 2c 20 31 {42, 13, 666, 1
0db0: 37 2c 20 31 33 33 37 2c 20 34 32 2c 20 31 7d 3b 7, 1337, 42, 1};
0dc0: 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 ... vector <int
0dd0: 3e 20 63 6f 75 6e 74 28 63 6f 75 6e 74 5f 2c 20 > count(count_,
0de0: 63 6f 75 6e 74 5f 2b 73 69 7a 65 6f 66 28 63 6f count_+sizeof(co
0df0: 75 6e 74 5f 29 2f 73 69 7a 65 6f 66 28 2a 63 6f unt_)/sizeof(*co
0e00: 75 6e 74 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 66 unt_)); ...int f
0e10: 69 72 73 74 5f 5b 5d 20 3d 20 7b 31 38 2c 20 37 irst_[] = {18, 7
0e20: 36 2c 20 33 2c 20 31 32 32 2c 20 30 2c 20 31 31 6, 3, 122, 0, 11
0e30: 2c 20 31 31 7d 3b 0d 0a 09 20 20 76 65 63 74 6f , 11};... vecto
0e40: 72 20 3c 69 6e 74 3e 20 66 69 72 73 74 28 66 69 r <int> first(fi
0e50: 72 73 74 5f 2c 20 66 69 72 73 74 5f 2b 73 69 7a rst_, first_+siz
0e60: 65 6f 66 28 66 69 72 73 74 5f 29 2f 73 69 7a 65 eof(first_)/size
0e70: 6f 66 28 2a 66 69 72 73 74 5f 29 29 3b 20 0d 0a of(*first_)); ..
0e80: 09 69 6e 74 20 6d 75 6c 74 5f 5b 5d 20 3d 20 7b .int mult_[] = {
0e90: 33 33 2c 20 31 37 2c 20 35 34 2c 20 39 30 2c 20 33, 17, 54, 90,
0ea0: 34 31 2c 20 31 32 32 2c 20 32 30 7d 3b 0d 0a 09 41, 122, 20};...
0eb0: 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 6d vector <int> m
0ec0: 75 6c 74 28 6d 75 6c 74 5f 2c 20 6d 75 6c 74 5f ult(mult_, mult_
0ed0: 2b 73 69 7a 65 6f 66 28 6d 75 6c 74 5f 29 2f 73 +sizeof(mult_)/s
0ee0: 69 7a 65 6f 66 28 2a 6d 75 6c 74 5f 29 29 3b 20 izeof(*mult_));
0ef0: 0d 0a 09 69 6e 74 20 61 64 64 5f 5b 5d 20 3d 20 ...int add_[] =
0f00: 7b 36 36 2c 20 31 35 2c 20 31 30 2c 20 31 32 31 {66, 15, 10, 121
0f10: 2c 20 31 32 32 2c 20 31 2c 20 33 30 7d 3b 0d 0a , 122, 1, 30};..
0f20: 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 . vector <int>
0f30: 61 64 64 28 61 64 64 5f 2c 20 61 64 64 5f 2b 73 add(add_, add_+s
0f40: 69 7a 65 6f 66 28 61 64 64 5f 29 2f 73 69 7a 65 izeof(add_)/size
0f50: 6f 66 28 2a 61 64 64 5f 29 29 3b 20 0d 0a 09 69 of(*add_)); ...i
0f60: 6e 74 20 5f 20 3d 20 31 30 35 39 3b 20 0d 0a 45 nt _ = 1059; ..E
0f70: 4e 44 0d 0a 43 41 53 45 28 33 29 0d 0a 09 69 6e ND..CASE(3)...in
0f80: 74 20 4d 20 3d 20 31 30 34 38 35 37 36 3b 20 0d t M = 1048576; .
0f90: 0a 09 69 6e 74 20 63 6f 75 6e 74 5f 5b 5d 20 3d ..int count_[] =
0fa0: 20 7b 34 32 34 32 2c 20 34 32 2c 20 39 38 37 32 {4242, 42, 9872
0fb0: 2c 20 31 33 2c 20 36 36 36 2c 20 32 31 39 38 33 , 13, 666, 21983
0fc0: 2c 20 31 37 2c 20 31 33 33 37 2c 20 34 32 2c 20 , 17, 1337, 42,
0fd0: 31 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 1};... vector <
0fe0: 69 6e 74 3e 20 63 6f 75 6e 74 28 63 6f 75 6e 74 int> count(count
0ff0: 5f 2c 20 63 6f 75 6e 74 5f 2b 73 69 7a 65 6f 66 _, count_+sizeof
1000: 28 63 6f 75 6e 74 5f 29 2f 73 69 7a 65 6f 66 28 (count_)/sizeof(
1010: 2a 63 6f 75 6e 74 5f 29 29 3b 20 0d 0a 09 69 6e *count_)); ...in
1020: 74 20 66 69 72 73 74 5f 5b 5d 20 3d 20 7b 31 39 t first_[] = {19
1030: 2c 20 31 38 2c 20 37 36 2c 20 34 32 2c 20 33 2c , 18, 76, 42, 3,
1040: 20 31 31 32 2c 20 30 2c 20 31 31 2c 20 31 31 2c 112, 0, 11, 11,
1050: 20 31 32 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 12};... vector
1060: 20 3c 69 6e 74 3e 20 66 69 72 73 74 28 66 69 72 <int> first(fir
1070: 73 74 5f 2c 20 66 69 72 73 74 5f 2b 73 69 7a 65 st_, first_+size
1080: 6f 66 28 66 69 72 73 74 5f 29 2f 73 69 7a 65 6f of(first_)/sizeo
1090: 66 28 2a 66 69 72 73 74 5f 29 29 3b 20 0d 0a 09 f(*first_)); ...
10a0: 69 6e 74 20 6d 75 6c 74 5f 5b 5d 20 3d 20 7b 32 int mult_[] = {2
10b0: 37 2c 20 33 33 2c 20 31 30 2c 20 38 2c 20 31 37 7, 33, 10, 8, 17
10c0: 2c 20 39 33 36 32 2c 20 39 30 2c 20 34 31 2c 20 , 9362, 90, 41,
10d0: 31 32 32 2c 20 32 30 7d 3b 0d 0a 09 20 20 76 65 122, 20};... ve
10e0: 63 74 6f 72 20 3c 69 6e 74 3e 20 6d 75 6c 74 28 ctor <int> mult(
10f0: 6d 75 6c 74 5f 2c 20 6d 75 6c 74 5f 2b 73 69 7a mult_, mult_+siz
1100: 65 6f 66 28 6d 75 6c 74 5f 29 2f 73 69 7a 65 6f eof(mult_)/sizeo
1110: 66 28 2a 6d 75 6c 74 5f 29 29 3b 20 0d 0a 09 69 f(*mult_)); ...i
1120: 6e 74 20 61 64 64 5f 5b 5d 20 3d 20 7b 39 38 2c nt add_[] = {98,
1130: 20 31 30 31 2c 20 36 36 2c 20 31 35 2c 20 31 30 101, 66, 15, 10
1140: 2c 20 31 34 34 2c 20 33 2c 20 31 2c 20 35 2c 20 , 144, 3, 1, 5,
1150: 31 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 1};... vector <
1160: 69 6e 74 3e 20 61 64 64 28 61 64 64 5f 2c 20 61 int> add(add_, a
1170: 64 64 5f 2b 73 69 7a 65 6f 66 28 61 64 64 5f 29 dd_+sizeof(add_)
1180: 2f 73 69 7a 65 6f 66 28 2a 61 64 64 5f 29 29 3b /sizeof(*add_));
1190: 20 0d 0a 09 69 6e 74 20 5f 20 3d 20 31 36 32 33 ...int _ = 1623
11a0: 32 3b 20 0d 0a 45 4e 44 0d 0a 43 41 53 45 28 34 2; ..END..CASE(4
11b0: 29 0d 0a 09 69 6e 74 20 4d 20 3d 20 31 30 37 33 )...int M = 1073
11c0: 37 34 31 38 32 34 3b 20 0d 0a 09 69 6e 74 20 63 741824; ...int c
11d0: 6f 75 6e 74 5f 5b 5d 20 3d 20 7b 38 39 34 36 30 ount_[] = {89460
11e0: 32 2c 20 39 34 36 35 36 39 2c 20 38 38 37 32 33 2, 946569, 88723
11f0: 30 2c 20 38 35 36 31 35 32 2c 20 39 36 32 35 38 0, 856152, 96258
1200: 33 2c 20 39 34 39 33 35 36 2c 20 39 30 34 38 34 3, 949356, 90484
1210: 37 2c 20 38 32 39 31 30 30 2c 20 38 34 32 31 38 7, 829100, 84218
1220: 33 2c 20 39 35 38 34 34 30 2c 0d 0a 20 38 31 31 3, 958440,.. 811
1230: 30 38 31 2c 20 38 36 34 30 37 38 2c 20 38 30 39 081, 864078, 809
1240: 32 30 39 2c 20 39 33 38 37 32 37 2c 20 39 34 39 209, 938727, 949
1250: 31 33 35 2c 20 38 39 32 38 30 39 2c 20 38 31 36 135, 892809, 816
1260: 35 32 38 2c 20 39 36 31 32 33 37 2c 20 39 37 39 528, 961237, 979
1270: 31 34 32 2c 20 38 39 30 39 32 32 7d 3b 0d 0a 09 142, 890922};...
1280: 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 63 vector <int> c
1290: 6f 75 6e 74 28 63 6f 75 6e 74 5f 2c 20 63 6f 75 ount(count_, cou
12a0: 6e 74 5f 2b 73 69 7a 65 6f 66 28 63 6f 75 6e 74 nt_+sizeof(count
12b0: 5f 29 2f 73 69 7a 65 6f 66 28 2a 63 6f 75 6e 74 _)/sizeof(*count
12c0: 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 66 69 72 73 _)); ...int firs
12d0: 74 5f 5b 5d 20 3d 20 7b 38 34 34 30 38 35 30 37 t_[] = {84408507
12e0: 38 2c 20 38 39 38 39 33 37 32 35 39 2c 20 32 34 8, 898937259, 24
12f0: 33 34 39 30 31 37 32 2c 20 38 38 37 38 30 34 31 3490172, 8878041
1300: 30 32 2c 20 31 38 37 36 39 36 34 31 37 2c 20 31 02, 187696417, 1
1310: 35 36 38 32 30 34 34 32 2c 20 32 33 37 36 30 30 56820442, 237600
1320: 32 31 30 2c 20 36 31 38 38 31 32 39 32 34 2c 20 210, 618812924,
1330: 31 35 33 30 30 30 32 33 39 2c 20 39 31 32 33 36 153000239, 91236
1340: 34 30 33 33 2c 0d 0a 20 32 35 34 39 33 36 39 36 4033,.. 25493696
1350: 36 2c 20 36 35 30 32 39 38 37 37 34 2c 20 39 38 6, 650298774, 98
1360: 32 39 38 38 31 34 30 2c 20 36 34 39 32 35 38 33 2988140, 6492583
1370: 33 31 2c 20 35 36 36 34 34 34 36 32 36 2c 20 32 31, 566444626, 2
1380: 30 31 34 38 31 37 32 31 2c 20 34 39 32 39 34 33 01481721, 492943
1390: 33 39 30 2c 20 31 30 36 31 39 35 33 30 38 31 2c 390, 1061953081,
13a0: 20 34 39 32 36 37 32 39 36 33 2c 20 39 36 30 35 492672963, 9605
13b0: 31 39 37 31 31 7d 3b 0d 0a 09 20 20 76 65 63 74 19711};... vect
13c0: 6f 72 20 3c 69 6e 74 3e 20 66 69 72 73 74 28 66 or <int> first(f
13d0: 69 72 73 74 5f 2c 20 66 69 72 73 74 5f 2b 73 69 irst_, first_+si
13e0: 7a 65 6f 66 28 66 69 72 73 74 5f 29 2f 73 69 7a zeof(first_)/siz
13f0: 65 6f 66 28 2a 66 69 72 73 74 5f 29 29 3b 20 0d eof(*first_)); .
1400: 0a 09 69 6e 74 20 6d 75 6c 74 5f 5b 5d 20 3d 20 ..int mult_[] =
1410: 7b 31 30 33 36 34 38 32 30 33 37 2c 20 35 38 33 {1036482037, 583
1420: 32 31 39 30 37 32 2c 20 38 31 39 31 36 38 30 39 219072, 81916809
1430: 34 2c 20 32 35 33 37 35 35 30 35 32 2c 20 35 34 4, 253755052, 54
1440: 38 32 30 38 39 38 32 2c 20 34 30 31 38 33 30 31 8208982, 4018301
1450: 36 37 2c 20 36 33 38 36 32 36 30 38 32 2c 20 34 67, 638626082, 4
1460: 33 36 34 32 39 33 32 2c 20 31 32 33 36 30 37 37 3642932, 1236077
1470: 34 39 2c 20 34 38 35 35 32 31 31 37 38 2c 0d 0a 49, 485521178,..
1480: 20 38 36 30 33 36 38 31 32 39 2c 20 33 30 33 33 860368129, 3033
1490: 34 37 30 34 2c 20 32 31 39 37 37 31 34 36 32 2c 4704, 219771462,
14a0: 20 37 33 33 33 37 35 36 30 30 2c 20 31 33 30 38 733375600, 1308
14b0: 33 39 32 31 39 2c 20 34 31 35 35 30 33 39 36 30 39219, 415503960
14c0: 2c 20 32 39 34 31 33 32 34 38 34 2c 20 31 30 34 , 294132484, 104
14d0: 34 38 33 31 34 36 32 2c 20 32 35 36 39 31 30 34 4831462, 2569104
14e0: 38 34 2c 20 31 39 38 38 35 32 31 37 30 7d 3b 0d 84, 198852170};.
14f0: 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e .. vector <int>
1500: 20 6d 75 6c 74 28 6d 75 6c 74 5f 2c 20 6d 75 6c mult(mult_, mul
1510: 74 5f 2b 73 69 7a 65 6f 66 28 6d 75 6c 74 5f 29 t_+sizeof(mult_)
1520: 2f 73 69 7a 65 6f 66 28 2a 6d 75 6c 74 5f 29 29 /sizeof(*mult_))
1530: 3b 20 0d 0a 09 69 6e 74 20 61 64 64 5f 5b 5d 20 ; ...int add_[]
1540: 3d 20 7b 38 38 39 31 36 39 30 30 36 2c 20 36 30 = {889169006, 60
1550: 34 38 33 31 33 36 36 2c 20 39 36 37 32 39 32 39 4831366, 9672929
1560: 39 34 2c 20 39 38 30 36 38 36 32 38 30 2c 20 38 94, 980686280, 8
1570: 34 34 38 37 35 37 39 31 2c 20 31 30 32 37 36 38 44875791, 102768
1580: 37 34 39 32 2c 20 33 35 37 37 33 34 38 38 32 2c 7492, 357734882,
1590: 20 32 39 35 38 37 39 37 34 33 2c 20 34 38 32 38 295879743, 4828
15a0: 34 37 34 38 2c 20 34 32 31 37 32 39 31 30 30 2c 4748, 421729100,
15b0: 0d 0a 20 31 30 34 39 35 33 36 33 31 33 2c 20 33 .. 1049536313, 3
15c0: 32 37 32 30 37 33 33 32 2c 20 39 34 38 30 35 33 27207332, 948053
15d0: 34 34 36 2c 20 32 37 31 32 32 39 35 37 30 2c 20 446, 271229570,
15e0: 36 36 34 35 37 39 33 35 39 2c 20 37 39 35 38 31 664579359, 79581
15f0: 35 32 38 35 2c 20 38 34 32 38 35 36 35 32 38 2c 5285, 842856528,
1600: 20 38 37 36 36 36 32 39 37 35 2c 20 36 37 35 36 876662975, 6756
1610: 31 31 39 33 38 2c 20 36 33 34 32 32 39 39 32 35 11938, 634229925
1620: 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 };... vector <i
1630: 6e 74 3e 20 61 64 64 28 61 64 64 5f 2c 20 61 64 nt> add(add_, ad
1640: 64 5f 2b 73 69 7a 65 6f 66 28 61 64 64 5f 29 2f d_+sizeof(add_)/
1650: 73 69 7a 65 6f 66 28 2a 61 64 64 5f 29 29 3b 20 sizeof(*add_));
1660: 0d 0a 09 69 6e 74 20 5f 20 3d 20 38 39 37 31 39 ...int _ = 89719
1670: 36 35 3b 20 0d 0a 45 4e 44 0d 0a 43 41 53 45 28 65; ..END..CASE(
1680: 35 29 0d 0a 09 69 6e 74 20 4d 20 3d 20 31 30 37 5)...int M = 107
1690: 33 37 34 31 38 32 34 3b 20 0d 0a 09 69 6e 74 20 3741824; ...int
16a0: 63 6f 75 6e 74 5f 5b 5d 20 3d 20 7b 32 32 37 33 count_[] = {2273
16b0: 39 39 2c 37 33 30 31 35 2c 32 33 35 35 34 36 2c 99,73015,235546,
16c0: 39 34 35 33 35 32 2c 33 31 38 36 32 39 2c 33 38 945352,318629,38
16d0: 34 34 35 38 2c 35 35 38 30 39 2c 37 36 36 30 33 4458,55809,76603
16e0: 35 2c 35 33 30 36 30 30 2c 37 35 35 34 31 30 2c 5,530600,755410,
16f0: 36 30 31 35 37 39 2c 38 34 31 30 31 34 2c 38 32 601579,841014,82
1700: 33 31 39 33 2c 32 32 33 36 39 32 2c 35 30 38 33 3193,223692,5083
1710: 38 31 2c 36 33 36 36 35 38 2c 37 38 38 31 37 31 81,636658,788171
1720: 2c 32 36 35 39 36 31 2c 31 31 39 35 31 35 2c 38 ,265961,119515,8
1730: 32 32 35 37 31 2c 38 36 39 35 35 34 2c 35 36 34 22571,869554,564
1740: 32 33 35 2c 33 31 32 30 35 31 2c 31 30 35 31 30 235,312051,10510
1750: 37 2c 36 32 35 37 30 34 2c 34 38 30 32 30 30 2c 7,625704,480200,
1760: 37 36 31 30 39 35 2c 35 38 38 38 32 35 2c 37 34 761095,588825,74
1770: 35 38 35 37 2c 37 34 30 39 31 2c 38 39 37 37 37 5857,74091,89777
1780: 31 2c 39 30 30 38 34 34 2c 31 37 34 31 30 31 2c 1,900844,174101,
1790: 33 35 32 35 32 30 2c 34 33 37 31 38 31 2c 36 38 352520,437181,68
17a0: 30 34 38 37 2c 35 35 30 34 32 33 2c 39 32 33 37 0487,550423,9237
17b0: 34 34 2c 35 39 31 38 34 37 2c 39 39 38 33 33 30 44,591847,998330
17c0: 2c 34 39 34 33 38 39 2c 31 37 31 31 37 39 2c 39 ,494389,171179,9
17d0: 38 33 38 33 38 2c 34 39 34 34 33 37 2c 33 36 30 83838,494437,360
17e0: 34 2c 39 34 30 33 30 36 2c 39 36 33 32 36 33 2c 4,940306,963263,
17f0: 38 35 34 33 32 37 2c 33 33 37 32 35 35 2c 38 30 854327,337255,80
1800: 32 39 39 36 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 2996};... vecto
1810: 72 20 3c 69 6e 74 3e 20 63 6f 75 6e 74 28 63 6f r <int> count(co
1820: 75 6e 74 5f 2c 20 63 6f 75 6e 74 5f 2b 73 69 7a unt_, count_+siz
1830: 65 6f 66 28 63 6f 75 6e 74 5f 29 2f 73 69 7a 65 eof(count_)/size
1840: 6f 66 28 2a 63 6f 75 6e 74 5f 29 29 3b 20 0d 0a of(*count_)); ..
1850: 09 69 6e 74 20 66 69 72 73 74 5f 5b 5d 20 3d 20 .int first_[] =
1860: 7b 32 32 37 33 39 39 2c 37 33 30 31 35 2c 32 33 {227399,73015,23
1870: 35 35 34 36 2c 39 34 35 33 35 32 2c 33 31 38 36 5546,945352,3186
1880: 32 39 2c 33 38 34 34 35 38 2c 35 35 38 30 39 2c 29,384458,55809,
1890: 37 36 36 30 33 35 2c 35 33 30 36 30 30 2c 37 35 766035,530600,75
18a0: 35 34 31 30 2c 36 30 31 35 37 39 2c 38 34 31 30 5410,601579,8410
18b0: 31 34 2c 38 32 33 31 39 33 2c 32 32 33 36 39 32 14,823193,223692
18c0: 2c 35 30 38 33 38 31 2c 36 33 36 36 35 38 2c 37 ,508381,636658,7
18d0: 38 38 31 37 31 2c 32 36 35 39 36 31 2c 31 31 39 88171,265961,119
18e0: 35 31 35 2c 38 32 32 35 37 31 2c 38 36 39 35 35 515,822571,86955
18f0: 34 2c 35 36 34 32 33 35 2c 33 31 32 30 35 31 2c 4,564235,312051,
1900: 31 30 35 31 30 37 2c 36 32 35 37 30 34 2c 34 38 105107,625704,48
1910: 30 32 30 30 2c 37 36 31 30 39 35 2c 35 38 38 38 0200,761095,5888
1920: 32 35 2c 37 34 35 38 35 37 2c 37 34 30 39 31 2c 25,745857,74091,
1930: 38 39 37 37 37 31 2c 39 30 30 38 34 34 2c 31 37 897771,900844,17
1940: 34 31 30 31 2c 33 35 32 35 32 30 2c 34 33 37 31 4101,352520,4371
1950: 38 31 2c 36 38 30 34 38 37 2c 35 35 30 34 32 33 81,680487,550423
1960: 2c 39 32 33 37 34 34 2c 35 39 31 38 34 37 2c 39 ,923744,591847,9
1970: 39 38 33 33 30 2c 34 39 34 33 38 39 2c 31 37 31 98330,494389,171
1980: 31 37 39 2c 39 38 33 38 33 38 2c 34 39 34 34 33 179,983838,49443
1990: 37 2c 33 36 30 34 2c 39 34 30 33 30 36 2c 39 36 7,3604,940306,96
19a0: 33 32 36 33 2c 38 35 34 33 32 37 2c 33 33 37 32 3263,854327,3372
19b0: 35 35 2c 38 30 32 39 39 36 7d 3b 0d 0a 09 20 20 55,802996};...
19c0: 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 66 69 72 vector <int> fir
19d0: 73 74 28 66 69 72 73 74 5f 2c 20 66 69 72 73 74 st(first_, first
19e0: 5f 2b 73 69 7a 65 6f 66 28 66 69 72 73 74 5f 29 _+sizeof(first_)
19f0: 2f 73 69 7a 65 6f 66 28 2a 66 69 72 73 74 5f 29 /sizeof(*first_)
1a00: 29 3b 20 0d 0a 09 69 6e 74 20 6d 75 6c 74 5f 5b ); ...int mult_[
1a10: 5d 20 3d 20 7b 32 32 37 33 39 39 2c 37 33 30 31 ] = {227399,7301
1a20: 35 2c 32 33 35 35 34 36 2c 39 34 35 33 35 32 2c 5,235546,945352,
1a30: 33 31 38 36 32 39 2c 33 38 34 34 35 38 2c 35 35 318629,384458,55
1a40: 38 30 39 2c 37 36 36 30 33 35 2c 35 33 30 36 30 809,766035,53060
1a50: 30 2c 37 35 35 34 31 30 2c 36 30 31 35 37 39 2c 0,755410,601579,
1a60: 38 34 31 30 31 34 2c 38 32 33 31 39 33 2c 32 32 841014,823193,22
1a70: 33 36 39 32 2c 35 30 38 33 38 31 2c 36 33 36 36 3692,508381,6366
1a80: 35 38 2c 37 38 38 31 37 31 2c 32 36 35 39 36 31 58,788171,265961
1a90: 2c 31 31 39 35 31 35 2c 38 32 32 35 37 31 2c 38 ,119515,822571,8
1aa0: 36 39 35 35 34 2c 35 36 34 32 33 35 2c 33 31 32 69554,564235,312
1ab0: 30 35 31 2c 31 30 35 31 30 37 2c 36 32 35 37 30 051,105107,62570
1ac0: 34 2c 34 38 30 32 30 30 2c 37 36 31 30 39 35 2c 4,480200,761095,
1ad0: 35 38 38 38 32 35 2c 37 34 35 38 35 37 2c 37 34 588825,745857,74
1ae0: 30 39 31 2c 38 39 37 37 37 31 2c 39 30 30 38 34 091,897771,90084
1af0: 34 2c 31 37 34 31 30 31 2c 33 35 32 35 32 30 2c 4,174101,352520,
1b00: 34 33 37 31 38 31 2c 36 38 30 34 38 37 2c 35 35 437181,680487,55
1b10: 30 34 32 33 2c 39 32 33 37 34 34 2c 35 39 31 38 0423,923744,5918
1b20: 34 37 2c 39 39 38 33 33 30 2c 34 39 34 33 38 39 47,998330,494389
1b30: 2c 31 37 31 31 37 39 2c 39 38 33 38 33 38 2c 34 ,171179,983838,4
1b40: 39 34 34 33 37 2c 33 36 30 34 2c 39 34 30 33 30 94437,3604,94030
1b50: 36 2c 39 36 33 32 36 33 2c 38 35 34 33 32 37 2c 6,963263,854327,
1b60: 33 33 37 32 35 35 2c 38 30 32 39 39 36 7d 3b 0d 337255,802996};.
1b70: 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e .. vector <int>
1b80: 20 6d 75 6c 74 28 6d 75 6c 74 5f 2c 20 6d 75 6c mult(mult_, mul
1b90: 74 5f 2b 73 69 7a 65 6f 66 28 6d 75 6c 74 5f 29 t_+sizeof(mult_)
1ba0: 2f 73 69 7a 65 6f 66 28 2a 6d 75 6c 74 5f 29 29 /sizeof(*mult_))
1bb0: 3b 20 0d 0a 09 69 6e 74 20 61 64 64 5f 5b 5d 20 ; ...int add_[]
1bc0: 3d 20 7b 32 32 37 33 39 39 2c 37 33 30 31 35 2c = {227399,73015,
1bd0: 32 33 35 35 34 36 2c 39 34 35 33 35 32 2c 33 31 235546,945352,31
1be0: 38 36 32 39 2c 33 38 34 34 35 38 2c 35 35 38 30 8629,384458,5580
1bf0: 39 2c 37 36 36 30 33 35 2c 35 33 30 36 30 30 2c 9,766035,530600,
1c00: 37 35 35 34 31 30 2c 36 30 31 35 37 39 2c 38 34 755410,601579,84
1c10: 31 30 31 34 2c 38 32 33 31 39 33 2c 32 32 33 36 1014,823193,2236
1c20: 39 32 2c 35 30 38 33 38 31 2c 36 33 36 36 35 38 92,508381,636658
1c30: 2c 37 38 38 31 37 31 2c 32 36 35 39 36 31 2c 31 ,788171,265961,1
1c40: 31 39 35 31 35 2c 38 32 32 35 37 31 2c 38 36 39 19515,822571,869
1c50: 35 35 34 2c 35 36 34 32 33 35 2c 33 31 32 30 35 554,564235,31205
1c60: 31 2c 31 30 35 31 30 37 2c 36 32 35 37 30 34 2c 1,105107,625704,
1c70: 34 38 30 32 30 30 2c 37 36 31 30 39 35 2c 35 38 480200,761095,58
1c80: 38 38 32 35 2c 37 34 35 38 35 37 2c 37 34 30 39 8825,745857,7409
1c90: 31 2c 38 39 37 37 37 31 2c 39 30 30 38 34 34 2c 1,897771,900844,
1ca0: 31 37 34 31 30 31 2c 33 35 32 35 32 30 2c 34 33 174101,352520,43
1cb0: 37 31 38 31 2c 36 38 30 34 38 37 2c 35 35 30 34 7181,680487,5504
1cc0: 32 33 2c 39 32 33 37 34 34 2c 35 39 31 38 34 37 23,923744,591847
1cd0: 2c 39 39 38 33 33 30 2c 34 39 34 33 38 39 2c 31 ,998330,494389,1
1ce0: 37 31 31 37 39 2c 39 38 33 38 33 38 2c 34 39 34 71179,983838,494
1cf0: 34 33 37 2c 33 36 30 34 2c 39 34 30 33 30 36 2c 437,3604,940306,
1d00: 39 36 33 32 36 33 2c 38 35 34 33 32 37 2c 33 33 963263,854327,33
1d10: 37 32 35 35 2c 38 30 32 39 39 36 7d 3b 0d 0a 09 7255,802996};...
1d20: 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 61 vector <int> a
1d30: 64 64 28 61 64 64 5f 2c 20 61 64 64 5f 2b 73 69 dd(add_, add_+si
1d40: 7a 65 6f 66 28 61 64 64 5f 29 2f 73 69 7a 65 6f zeof(add_)/sizeo
1d50: 66 28 2a 61 64 64 5f 29 29 3b 20 0d 0a 09 69 6e f(*add_)); ...in
1d60: 74 20 5f 20 3d 20 2d 31 3b 20 0d 0a 45 4e 44 0d t _ = -1; ..END.
1d70: 0a 43 41 53 45 28 35 29 0d 0a 09 69 6e 74 20 4d .CASE(5)...int M
1d80: 20 3d 20 31 30 37 33 37 34 31 38 32 34 3b 20 0d = 1073741824; .
1d90: 0a 09 69 6e 74 20 63 6f 75 6e 74 5f 5b 5d 20 3d ..int count_[] =
1da0: 20 7b 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 {1000000,100000
1db0: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1dc0: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1dd0: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1de0: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1df0: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1e00: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1e10: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1e20: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1e30: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1e40: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1e50: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1e60: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1e70: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1e80: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1e90: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1ea0: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1eb0: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1ec0: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1ed0: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1ee0: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1ef0: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1f00: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1f10: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1f20: 30 2c 31 30 30 30 30 30 30 2c 31 30 30 30 30 30 0,1000000,100000
1f30: 30 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 0};... vector <
1f40: 69 6e 74 3e 20 63 6f 75 6e 74 28 63 6f 75 6e 74 int> count(count
1f50: 5f 2c 20 63 6f 75 6e 74 5f 2b 73 69 7a 65 6f 66 _, count_+sizeof
1f60: 28 63 6f 75 6e 74 5f 29 2f 73 69 7a 65 6f 66 28 (count_)/sizeof(
1f70: 2a 63 6f 75 6e 74 5f 29 29 3b 20 0d 0a 09 69 6e *count_)); ...in
1f80: 74 20 66 69 72 73 74 5f 5b 5d 20 3d 20 7b 37 37 t first_[] = {77
1f90: 35 38 39 39 2c 39 36 37 37 30 30 2c 39 34 36 32 5899,967700,9462
1fa0: 34 34 2c 36 39 34 35 36 32 2c 37 36 37 39 34 39 44,694562,767949
1fb0: 2c 38 34 30 35 30 37 2c 36 36 38 33 38 37 2c 35 ,840507,668387,5
1fc0: 35 35 35 36 35 2c 38 38 34 30 30 33 2c 35 33 35 55565,884003,535
1fd0: 39 36 36 2c 39 33 34 32 39 37 2c 35 33 33 39 32 966,934297,53392
1fe0: 33 2c 35 38 35 39 33 35 2c 37 30 35 39 38 30 2c 3,585935,705980,
1ff0: 35 30 36 35 35 39 2c 33 31 32 32 37 37 2c 32 37 506559,312277,27
2000: 31 33 38 35 2c 39 36 39 32 38 36 2c 38 30 33 32 1385,969286,8032
2010: 34 30 2c 38 33 36 36 38 32 2c 36 39 33 34 34 34 40,836682,693444
2020: 2c 33 38 33 32 36 39 2c 34 31 32 30 35 35 2c 34 ,383269,412055,4
2030: 36 36 31 38 33 2c 34 36 32 34 31 36 2c 36 30 38 66183,462416,608
2040: 30 30 35 2c 31 34 34 31 35 37 2c 32 31 38 34 36 005,144157,21846
2050: 38 2c 39 36 31 32 39 39 2c 36 38 34 37 38 35 2c 8,961299,684785,
2060: 33 32 34 38 38 35 2c 36 32 39 35 38 36 2c 33 36 324885,629586,36
2070: 32 37 34 36 2c 33 37 36 31 36 36 2c 36 36 36 37 2746,376166,6667
2080: 35 37 2c 35 39 31 39 33 39 2c 35 39 39 36 32 30 57,591939,599620
2090: 2c 38 32 37 31 35 39 2c 36 35 30 35 37 38 2c 31 ,827159,650578,1
20a0: 36 34 34 30 34 2c 32 32 39 35 39 33 2c 32 32 39 64404,229593,229
20b0: 35 33 37 2c 31 33 32 34 31 36 2c 34 31 38 35 36 537,132416,41856
20c0: 39 2c 34 35 34 30 32 36 2c 32 34 31 36 30 39 2c 9,454026,241609,
20d0: 32 33 34 37 36 2c 38 39 38 34 36 32 2c 34 33 33 23476,898462,433
20e0: 38 30 31 2c 39 33 33 38 31 30 7d 3b 0d 0a 09 20 801,933810};...
20f0: 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 66 69 vector <int> fi
2100: 72 73 74 28 66 69 72 73 74 5f 2c 20 66 69 72 73 rst(first_, firs
2110: 74 5f 2b 73 69 7a 65 6f 66 28 66 69 72 73 74 5f t_+sizeof(first_
2120: 29 2f 73 69 7a 65 6f 66 28 2a 66 69 72 73 74 5f )/sizeof(*first_
2130: 29 29 3b 20 0d 0a 09 69 6e 74 20 6d 75 6c 74 5f )); ...int mult_
2140: 5b 5d 20 3d 20 7b 32 32 37 33 39 39 2c 37 33 30 [] = {227399,730
2150: 31 35 2c 32 33 35 35 34 36 2c 39 34 35 33 35 32 15,235546,945352
2160: 2c 33 31 38 36 32 39 2c 33 38 34 34 35 38 2c 35 ,318629,384458,5
2170: 35 38 30 39 2c 37 36 36 30 33 35 2c 35 33 30 36 5809,766035,5306
2180: 30 30 2c 37 35 35 34 31 30 2c 36 30 31 35 37 39 00,755410,601579
2190: 2c 38 34 31 30 31 34 2c 38 32 33 31 39 33 2c 32 ,841014,823193,2
21a0: 32 33 36 39 32 2c 35 30 38 33 38 31 2c 36 33 36 23692,508381,636
21b0: 36 35 38 2c 37 38 38 31 37 31 2c 32 36 35 39 36 658,788171,26596
21c0: 31 2c 31 31 39 35 31 35 2c 38 32 32 35 37 31 2c 1,119515,822571,
21d0: 38 36 39 35 35 34 2c 35 36 34 32 33 35 2c 33 31 869554,564235,31
21e0: 32 30 35 31 2c 31 30 35 31 30 37 2c 36 32 35 37 2051,105107,6257
21f0: 30 34 2c 34 38 30 32 30 30 2c 37 36 31 30 39 35 04,480200,761095
2200: 2c 35 38 38 38 32 35 2c 37 34 35 38 35 37 2c 37 ,588825,745857,7
2210: 34 30 39 31 2c 38 39 37 37 37 31 2c 39 30 30 38 4091,897771,9008
2220: 34 34 2c 31 37 34 31 30 31 2c 33 35 32 35 32 30 44,174101,352520
2230: 2c 34 33 37 31 38 31 2c 36 38 30 34 38 37 2c 35 ,437181,680487,5
2240: 35 30 34 32 33 2c 39 32 33 37 34 34 2c 35 39 31 50423,923744,591
2250: 38 34 37 2c 39 39 38 33 33 30 2c 34 39 34 33 38 847,998330,49438
2260: 39 2c 31 37 31 31 37 39 2c 39 38 33 38 33 38 2c 9,171179,983838,
2270: 34 39 34 34 33 37 2c 33 36 30 34 2c 39 34 30 33 494437,3604,9403
2280: 30 36 2c 39 36 33 32 36 33 2c 38 35 34 33 32 37 06,963263,854327
2290: 2c 33 33 37 32 35 35 2c 38 30 32 39 39 36 7d 3b ,337255,802996};
22a0: 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 ... vector <int
22b0: 3e 20 6d 75 6c 74 28 6d 75 6c 74 5f 2c 20 6d 75 > mult(mult_, mu
22c0: 6c 74 5f 2b 73 69 7a 65 6f 66 28 6d 75 6c 74 5f lt_+sizeof(mult_
22d0: 29 2f 73 69 7a 65 6f 66 28 2a 6d 75 6c 74 5f 29 )/sizeof(*mult_)
22e0: 29 3b 20 0d 0a 09 69 6e 74 20 61 64 64 5f 5b 5d ); ...int add_[]
22f0: 20 3d 20 7b 32 32 37 33 39 39 2c 37 33 30 31 35 = {227399,73015
2300: 2c 32 33 35 35 34 36 2c 39 34 35 33 35 32 2c 33 ,235546,945352,3
2310: 31 38 36 32 39 2c 33 38 34 34 35 38 2c 35 35 38 18629,384458,558
2320: 30 39 2c 37 36 36 30 33 35 2c 35 33 30 36 30 30 09,766035,530600
2330: 2c 37 35 35 34 31 30 2c 36 30 31 35 37 39 2c 38 ,755410,601579,8
2340: 34 31 30 31 34 2c 38 32 33 31 39 33 2c 32 32 33 41014,823193,223
2350: 36 39 32 2c 35 30 38 33 38 31 2c 36 33 36 36 35 692,508381,63665
2360: 38 2c 37 38 38 31 37 31 2c 32 36 35 39 36 31 2c 8,788171,265961,
2370: 31 31 39 35 31 35 2c 38 32 32 35 37 31 2c 38 36 119515,822571,86
2380: 39 35 35 34 2c 35 36 34 32 33 35 2c 33 31 32 30 9554,564235,3120
2390: 35 31 2c 31 30 35 31 30 37 2c 36 32 35 37 30 34 51,105107,625704
23a0: 2c 34 38 30 32 30 30 2c 37 36 31 30 39 35 2c 35 ,480200,761095,5
23b0: 38 38 38 32 35 2c 37 34 35 38 35 37 2c 37 34 30 88825,745857,740
23c0: 39 31 2c 38 39 37 37 37 31 2c 39 30 30 38 34 34 91,897771,900844
23d0: 2c 31 37 34 31 30 31 2c 33 35 32 35 32 30 2c 34 ,174101,352520,4
23e0: 33 37 31 38 31 2c 36 38 30 34 38 37 2c 35 35 30 37181,680487,550
23f0: 34 32 33 2c 39 32 33 37 34 34 2c 35 39 31 38 34 423,923744,59184
2400: 37 2c 39 39 38 33 33 30 2c 34 39 34 33 38 39 2c 7,998330,494389,
2410: 31 37 31 31 37 39 2c 39 38 33 38 33 38 2c 34 39 171179,983838,49
2420: 34 34 33 37 2c 33 36 30 34 2c 39 34 30 33 30 36 4437,3604,940306
2430: 2c 39 36 33 32 36 33 2c 38 35 34 33 32 37 2c 33 ,963263,854327,3
2440: 33 37 32 35 35 2c 38 30 32 39 39 36 7d 3b 0d 0a 37255,802996};..
2450: 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 . vector <int>
2460: 61 64 64 28 61 64 64 5f 2c 20 61 64 64 5f 2b 73 add(add_, add_+s
2470: 69 7a 65 6f 66 28 61 64 64 5f 29 2f 73 69 7a 65 izeof(add_)/size
2480: 6f 66 28 2a 61 64 64 5f 29 29 3b 20 0d 0a 09 69 of(*add_)); ...i
2490: 6e 74 20 5f 20 3d 20 2d 31 3b 20 0d 0a 45 4e 44 nt _ = -1; ..END
24a0: 0d 0a 2f 2a 0d 0a 43 41 53 45 28 36 29 0d 0a 09 ../*..CASE(6)...
24b0: 69 6e 74 20 4d 20 3d 20 3b 20 0d 0a 09 69 6e 74 int M = ; ...int
24c0: 20 63 6f 75 6e 74 5f 5b 5d 20 3d 20 3b 0d 0a 09 count_[] = ;...
24d0: 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 63 vector <int> c
24e0: 6f 75 6e 74 28 63 6f 75 6e 74 5f 2c 20 63 6f 75 ount(count_, cou
24f0: 6e 74 5f 2b 73 69 7a 65 6f 66 28 63 6f 75 6e 74 nt_+sizeof(count
2500: 5f 29 2f 73 69 7a 65 6f 66 28 2a 63 6f 75 6e 74 _)/sizeof(*count
2510: 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 66 69 72 73 _)); ...int firs
2520: 74 5f 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63 t_[] = ;... vec
2530: 74 6f 72 20 3c 69 6e 74 3e 20 66 69 72 73 74 28 tor <int> first(
2540: 66 69 72 73 74 5f 2c 20 66 69 72 73 74 5f 2b 73 first_, first_+s
2550: 69 7a 65 6f 66 28 66 69 72 73 74 5f 29 2f 73 69 izeof(first_)/si
2560: 7a 65 6f 66 28 2a 66 69 72 73 74 5f 29 29 3b 20 zeof(*first_));
2570: 0d 0a 09 69 6e 74 20 6d 75 6c 74 5f 5b 5d 20 3d ...int mult_[] =
2580: 20 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 ;... vector <i
2590: 6e 74 3e 20 6d 75 6c 74 28 6d 75 6c 74 5f 2c 20 nt> mult(mult_,
25a0: 6d 75 6c 74 5f 2b 73 69 7a 65 6f 66 28 6d 75 6c mult_+sizeof(mul
25b0: 74 5f 29 2f 73 69 7a 65 6f 66 28 2a 6d 75 6c 74 t_)/sizeof(*mult
25c0: 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 61 64 64 5f _)); ...int add_
25d0: 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63 74 6f [] = ;... vecto
25e0: 72 20 3c 69 6e 74 3e 20 61 64 64 28 61 64 64 5f r <int> add(add_
25f0: 2c 20 61 64 64 5f 2b 73 69 7a 65 6f 66 28 61 64 , add_+sizeof(ad
2600: 64 5f 29 2f 73 69 7a 65 6f 66 28 2a 61 64 64 5f d_)/sizeof(*add_
2610: 29 29 3b 20 0d 0a 09 69 6e 74 20 5f 20 3d 20 3b )); ...int _ = ;
2620: 20 0d 0a 45 4e 44 0d 0a 2a 2f 0d 0a 7d 0d 0a 2f ..END..*/..}../
2630: 2f 20 45 4e 44 20 43 55 54 20 48 45 52 45 0d 0a / END CUT HERE..