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 75 73 69 6e 67 20 6e 61 6d sert>..using nam
0140: 65 73 70 61 63 65 20 73 74 64 3b 0d 0a 74 79 70 espace std;..typ
0150: 65 64 65 66 20 6c 6f 6e 67 20 6c 6f 6e 67 20 4c edef long long L
0160: 4c 3b 0d 0a 74 79 70 65 64 65 66 20 6c 6f 6e 67 L;..typedef long
0170: 20 64 6f 75 62 6c 65 20 4c 44 3b 0d 0a 74 79 70 double LD;..typ
0180: 65 64 65 66 20 63 6f 6d 70 6c 65 78 3c 4c 44 3e edef complex<LD>
0190: 20 43 4d 50 3b 0d 0a 0d 0a 63 6c 61 73 73 20 45 CMP;....class E
01a0: 61 72 20 7b 20 70 75 62 6c 69 63 3a 0d 0a 09 6c ar { public:...l
01b0: 6f 6e 67 20 6c 6f 6e 67 20 67 65 74 43 6f 75 6e ong long getCoun
01c0: 74 28 76 65 63 74 6f 72 20 3c 73 74 72 69 6e 67 t(vector <string
01d0: 3e 20 72 65 64 58 2c 20 76 65 63 74 6f 72 20 3c > redX, vector <
01e0: 73 74 72 69 6e 67 3e 20 62 6c 75 65 58 2c 20 76 string> blueX, v
01f0: 65 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20 62 ector <string> b
0200: 6c 75 65 59 29 0d 0a 09 7b 0d 0a 09 09 76 65 63 lueY)...{....vec
0210: 74 6f 72 3c 69 6e 74 3e 20 72 78 2c 20 20 62 78 tor<int> rx, bx
0220: 2c 20 62 79 3b 0d 0a 09 09 7b 0d 0a 09 09 09 73 , by;....{.....s
0230: 74 72 69 6e 67 73 74 72 65 61 6d 20 73 69 6e 28 tringstream sin(
0240: 61 63 63 75 6d 75 6c 61 74 65 28 72 65 64 58 2e accumulate(redX.
0250: 62 65 67 69 6e 28 29 2c 20 72 65 64 58 2e 65 6e begin(), redX.en
0260: 64 28 29 2c 20 73 74 72 69 6e 67 28 22 22 29 29 d(), string(""))
0270: 29 3b 0d 0a 09 09 09 66 6f 72 28 69 6e 74 20 78 );.....for(int x
0280: 3b 20 73 69 6e 3e 3e 78 3b 20 29 20 72 78 2e 70 ; sin>>x; ) rx.p
0290: 75 73 68 5f 62 61 63 6b 28 78 29 3b 0d 0a 09 09 ush_back(x);....
02a0: 7d 0d 0a 09 09 7b 0d 0a 09 09 09 73 74 72 69 6e }....{.....strin
02b0: 67 73 74 72 65 61 6d 20 73 69 6e 28 61 63 63 75 gstream sin(accu
02c0: 6d 75 6c 61 74 65 28 62 6c 75 65 58 2e 62 65 67 mulate(blueX.beg
02d0: 69 6e 28 29 2c 20 62 6c 75 65 58 2e 65 6e 64 28 in(), blueX.end(
02e0: 29 2c 20 73 74 72 69 6e 67 28 22 22 29 29 29 3b ), string("")));
02f0: 0d 0a 09 09 09 66 6f 72 28 69 6e 74 20 78 3b 20 .....for(int x;
0300: 73 69 6e 3e 3e 78 3b 20 29 20 62 78 2e 70 75 73 sin>>x; ) bx.pus
0310: 68 5f 62 61 63 6b 28 78 29 3b 0d 0a 09 09 7d 0d h_back(x);....}.
0320: 0a 09 09 7b 0d 0a 09 09 09 73 74 72 69 6e 67 73 ...{.....strings
0330: 74 72 65 61 6d 20 73 69 6e 28 61 63 63 75 6d 75 tream sin(accumu
0340: 6c 61 74 65 28 62 6c 75 65 59 2e 62 65 67 69 6e late(blueY.begin
0350: 28 29 2c 20 62 6c 75 65 59 2e 65 6e 64 28 29 2c (), blueY.end(),
0360: 20 73 74 72 69 6e 67 28 22 22 29 29 29 3b 0d 0a string("")));..
0370: 09 09 09 66 6f 72 28 69 6e 74 20 79 3b 20 73 69 ...for(int y; si
0380: 6e 3e 3e 79 3b 20 29 20 62 79 2e 70 75 73 68 5f n>>y; ) by.push_
0390: 62 61 63 6b 28 79 29 3b 0d 0a 09 09 7d 0d 0a 09 back(y);....}...
03a0: 09 69 6e 74 20 42 20 3d 20 62 78 2e 73 69 7a 65 .int B = bx.size
03b0: 28 29 3b 0d 0a 0d 0a 09 09 4c 4c 20 74 6f 74 61 ();......LL tota
03c0: 6c 20 3d 20 30 3b 0d 0a 09 09 66 6f 72 28 69 6e l = 0;....for(in
03d0: 74 20 70 3d 30 3b 20 70 3c 42 3b 20 2b 2b 70 29 t p=0; p<B; ++p)
03e0: 0d 0a 09 09 66 6f 72 28 69 6e 74 20 71 3d 30 3b ....for(int q=0;
03f0: 20 71 3c 42 3b 20 2b 2b 71 29 0d 0a 09 09 69 66 q<B; ++q)....if
0400: 28 62 79 5b 70 5d 20 3e 20 62 79 5b 71 5d 29 0d (by[p] > by[q]).
0410: 0a 09 09 7b 0d 0a 09 09 09 69 6e 74 20 70 78 3d ...{.....int px=
0420: 62 78 5b 70 5d 2c 20 70 79 3d 62 79 5b 70 5d 2c bx[p], py=by[p],
0430: 20 71 78 3d 62 78 5b 71 5d 2c 20 71 79 3d 62 79 qx=bx[q], qy=by
0440: 5b 71 5d 3b 0d 0a 09 09 09 4c 4c 20 61 3d 30 2c [q];.....LL a=0,
0450: 20 62 3d 30 2c 20 63 3d 30 2c 20 64 3d 30 3b 0d b=0, c=0, d=0;.
0460: 0a 09 09 09 66 6f 72 28 69 6e 74 20 69 3d 30 3b ....for(int i=0;
0470: 20 69 3c 72 78 2e 73 69 7a 65 28 29 3b 20 2b 2b i<rx.size(); ++
0480: 69 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 69 6e i).....{......in
0490: 74 20 78 20 3d 20 72 78 5b 69 5d 3b 0d 0a 09 09 t x = rx[i];....
04a0: 09 09 64 6f 75 62 6c 65 20 7a 20 3d 20 70 78 20 ..double z = px
04b0: 2b 20 28 71 78 2d 70 78 29 2a 70 79 2f 64 6f 75 + (qx-px)*py/dou
04c0: 62 6c 65 28 70 79 2d 71 79 29 3b 0d 0a 09 09 09 ble(py-qy);.....
04d0: 09 69 66 28 78 3c 6d 69 6e 3c 64 6f 75 62 6c 65 .if(x<min<double
04e0: 3e 28 7a 2c 70 78 29 29 0d 0a 09 09 09 09 09 2b >(z,px)).......+
04f0: 2b 61 3b 0d 0a 09 09 09 09 69 66 28 6d 69 6e 3c +a;......if(min<
0500: 64 6f 75 62 6c 65 3e 28 7a 2c 70 78 29 3c 3d 78 double>(z,px)<=x
0510: 20 26 26 20 78 3c 71 78 29 0d 0a 09 09 09 09 09 && x<qx).......
0520: 2b 2b 62 3b 0d 0a 09 09 09 09 69 66 28 71 78 3c ++b;......if(qx<
0530: 78 20 26 26 20 78 3c 3d 6d 61 78 3c 64 6f 75 62 x && x<=max<doub
0540: 6c 65 3e 28 7a 2c 70 78 29 29 0d 0a 09 09 09 09 le>(z,px))......
0550: 09 2b 2b 63 3b 0d 0a 09 09 09 09 69 66 28 6d 61 .++c;......if(ma
0560: 78 3c 64 6f 75 62 6c 65 3e 28 7a 2c 70 78 29 3c x<double>(z,px)<
0570: 78 29 0d 0a 09 09 09 09 09 2b 2b 64 3b 0d 0a 09 x).......++d;...
0580: 09 09 7d 0d 0a 09 09 09 74 6f 74 61 6c 20 2b 3d ..}.....total +=
0590: 20 28 61 2a 28 61 2d 31 29 2f 32 2b 61 2a 62 29 (a*(a-1)/2+a*b)
05a0: 20 2a 20 28 64 2a 28 64 2d 31 29 2f 32 2b 64 2a * (d*(d-1)/2+d*
05b0: 63 29 3b 0d 0a 09 09 7d 0d 0a 09 09 72 65 74 75 c);....}....retu
05c0: 72 6e 20 74 6f 74 61 6c 3b 0d 0a 09 7d 0d 0a 7d rn total;...}..}
05d0: 3b 0d 0a 0d 0a 2f 2f 20 42 45 47 49 4e 20 43 55 ;....// BEGIN CU
05e0: 54 20 48 45 52 45 0d 0a 23 69 6e 63 6c 75 64 65 T HERE..#include
05f0: 20 3c 63 74 69 6d 65 3e 0d 0a 64 6f 75 62 6c 65 <ctime>..double
0600: 20 73 74 61 72 74 5f 74 69 6d 65 3b 20 73 74 72 start_time; str
0610: 69 6e 67 20 74 69 6d 65 72 28 29 0d 0a 20 7b 20 ing timer().. {
0620: 6f 73 74 72 69 6e 67 73 74 72 65 61 6d 20 6f 73 ostringstream os
0630: 3b 20 6f 73 20 3c 3c 20 22 20 28 22 20 3c 3c 20 ; os << " (" <<
0640: 69 6e 74 28 28 63 6c 6f 63 6b 28 29 2d 73 74 61 int((clock()-sta
0650: 72 74 5f 74 69 6d 65 29 2f 43 4c 4f 43 4b 53 5f rt_time)/CLOCKS_
0660: 50 45 52 5f 53 45 43 2a 31 30 30 30 29 20 3c 3c PER_SEC*1000) <<
0670: 20 22 20 6d 73 65 63 29 22 3b 20 72 65 74 75 72 " msec)"; retur
0680: 6e 20 6f 73 2e 73 74 72 28 29 3b 20 7d 0d 0a 74 n os.str(); }..t
0690: 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61 6d 65 emplate<typename
06a0: 20 54 3e 20 6f 73 74 72 65 61 6d 26 20 6f 70 65 T> ostream& ope
06b0: 72 61 74 6f 72 3c 3c 28 6f 73 74 72 65 61 6d 26 rator<<(ostream&
06c0: 20 6f 73 2c 20 63 6f 6e 73 74 20 76 65 63 74 6f os, const vecto
06d0: 72 3c 54 3e 26 20 76 29 0d 0a 20 7b 20 6f 73 20 r<T>& v).. { os
06e0: 3c 3c 20 22 7b 20 22 3b 0d 0a 20 20 20 66 6f 72 << "{ ";.. for
06f0: 28 74 79 70 65 6e 61 6d 65 20 76 65 63 74 6f 72 (typename vector
0700: 3c 54 3e 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 <T>::const_itera
0710: 74 6f 72 20 69 74 3d 76 2e 62 65 67 69 6e 28 29 tor it=v.begin()
0720: 3b 20 69 74 21 3d 76 2e 65 6e 64 28 29 3b 20 2b ; it!=v.end(); +
0730: 2b 69 74 29 0d 0a 20 20 20 6f 73 20 3c 3c 20 27 +it).. os << '
0740: 5c 22 27 20 3c 3c 20 2a 69 74 20 3c 3c 20 27 5c \"' << *it << '\
0750: 22 27 20 3c 3c 20 28 69 74 2b 31 3d 3d 76 2e 65 "' << (it+1==v.e
0760: 6e 64 28 29 20 3f 20 22 22 20 3a 20 22 2c 20 22 nd() ? "" : ", "
0770: 29 3b 20 6f 73 20 3c 3c 20 22 20 7d 22 3b 20 72 ); os << " }"; r
0780: 65 74 75 72 6e 20 6f 73 3b 20 7d 0d 0a 76 6f 69 eturn os; }..voi
0790: 64 20 76 65 72 69 66 79 5f 63 61 73 65 28 63 6f d verify_case(co
07a0: 6e 73 74 20 6c 6f 6e 67 20 6c 6f 6e 67 26 20 45 nst long long& E
07b0: 78 70 65 63 74 65 64 2c 20 63 6f 6e 73 74 20 6c xpected, const l
07c0: 6f 6e 67 20 6c 6f 6e 67 26 20 52 65 63 65 69 76 ong long& Receiv
07d0: 65 64 29 20 7b 0d 0a 20 62 6f 6f 6c 20 6f 6b 20 ed) {.. bool ok
07e0: 3d 20 28 45 78 70 65 63 74 65 64 20 3d 3d 20 52 = (Expected == R
07f0: 65 63 65 69 76 65 64 29 3b 0d 0a 20 69 66 28 6f eceived);.. if(o
0800: 6b 29 20 63 65 72 72 20 3c 3c 20 22 50 41 53 53 k) cerr << "PASS
0810: 45 44 22 20 3c 3c 20 74 69 6d 65 72 28 29 20 3c ED" << timer() <
0820: 3c 20 65 6e 64 6c 3b 20 20 65 6c 73 65 20 7b 20 < endl; else {
0830: 63 65 72 72 20 3c 3c 20 22 46 41 49 4c 45 44 22 cerr << "FAILED"
0840: 20 3c 3c 20 74 69 6d 65 72 28 29 20 3c 3c 20 65 << timer() << e
0850: 6e 64 6c 3b 0d 0a 20 63 65 72 72 20 3c 3c 20 22 ndl;.. cerr << "
0860: 5c 74 6f 3a 20 5c 22 22 20 3c 3c 20 45 78 70 65 \to: \"" << Expe
0870: 63 74 65 64 20 3c 3c 20 27 5c 22 27 20 3c 3c 20 cted << '\"' <<
0880: 65 6e 64 6c 20 3c 3c 20 22 5c 74 78 3a 20 5c 22 endl << "\tx: \"
0890: 22 20 3c 3c 20 52 65 63 65 69 76 65 64 20 3c 3c " << Received <<
08a0: 20 27 5c 22 27 20 3c 3c 20 65 6e 64 6c 3b 20 7d '\"' << endl; }
08b0: 20 7d 0d 0a 23 64 65 66 69 6e 65 20 43 41 53 45 }..#define CASE
08c0: 28 4e 29 20 7b 63 65 72 72 20 3c 3c 20 22 54 65 (N) {cerr << "Te
08d0: 73 74 20 43 61 73 65 20 23 22 20 3c 3c 20 4e 20 st Case #" << N
08e0: 3c 3c 20 22 2e 2e 2e 22 20 3c 3c 20 66 6c 75 73 << "..." << flus
08f0: 68 3b 20 73 74 61 72 74 5f 74 69 6d 65 3d 63 6c h; start_time=cl
0900: 6f 63 6b 28 29 3b 0d 0a 23 64 65 66 69 6e 65 20 ock();..#define
0910: 45 4e 44 09 20 76 65 72 69 66 79 5f 63 61 73 65 END. verify_case
0920: 28 5f 2c 20 45 61 72 28 29 2e 67 65 74 43 6f 75 (_, Ear().getCou
0930: 6e 74 28 72 65 64 58 2c 20 62 6c 75 65 58 2c 20 nt(redX, blueX,
0940: 62 6c 75 65 59 29 29 3b 7d 0d 0a 69 6e 74 20 6d blueY));}..int m
0950: 61 69 6e 28 29 7b 0d 0a 0d 0a 43 41 53 45 28 30 ain(){....CASE(0
0960: 29 0d 0a 09 73 74 72 69 6e 67 20 72 65 64 58 5f )...string redX_
0970: 5b 5d 20 3d 20 7b 22 33 20 32 20 38 20 37 22 7d [] = {"3 2 8 7"}
0980: 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 73 74 ;... vector <st
0990: 72 69 6e 67 3e 20 72 65 64 58 28 72 65 64 58 5f ring> redX(redX_
09a0: 2c 20 72 65 64 58 5f 2b 73 69 7a 65 6f 66 28 72 , redX_+sizeof(r
09b0: 65 64 58 5f 29 2f 73 69 7a 65 6f 66 28 2a 72 65 edX_)/sizeof(*re
09c0: 64 58 5f 29 29 3b 20 0d 0a 09 73 74 72 69 6e 67 dX_)); ...string
09d0: 20 62 6c 75 65 58 5f 5b 5d 20 3d 20 7b 22 35 20 blueX_[] = {"5
09e0: 34 22 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 4"};... vector
09f0: 3c 73 74 72 69 6e 67 3e 20 62 6c 75 65 58 28 62 <string> blueX(b
0a00: 6c 75 65 58 5f 2c 20 62 6c 75 65 58 5f 2b 73 69 lueX_, blueX_+si
0a10: 7a 65 6f 66 28 62 6c 75 65 58 5f 29 2f 73 69 7a zeof(blueX_)/siz
0a20: 65 6f 66 28 2a 62 6c 75 65 58 5f 29 29 3b 20 0d eof(*blueX_)); .
0a30: 0a 09 73 74 72 69 6e 67 20 62 6c 75 65 59 5f 5b ..string blueY_[
0a40: 5d 20 3d 20 7b 22 32 20 34 22 7d 3b 0d 0a 09 20 ] = {"2 4"};...
0a50: 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e vector <string>
0a60: 20 62 6c 75 65 59 28 62 6c 75 65 59 5f 2c 20 62 blueY(blueY_, b
0a70: 6c 75 65 59 5f 2b 73 69 7a 65 6f 66 28 62 6c 75 lueY_+sizeof(blu
0a80: 65 59 5f 29 2f 73 69 7a 65 6f 66 28 2a 62 6c 75 eY_)/sizeof(*blu
0a90: 65 59 5f 29 29 3b 20 0d 0a 09 6c 6f 6e 67 20 6c eY_)); ...long l
0aa0: 6f 6e 67 20 5f 20 3d 20 31 4c 4c 3b 20 0d 0a 45 ong _ = 1LL; ..E
0ab0: 4e 44 0d 0a 43 41 53 45 28 31 29 0d 0a 09 73 74 ND..CASE(1)...st
0ac0: 72 69 6e 67 20 72 65 64 58 5f 5b 5d 20 3d 20 7b ring redX_[] = {
0ad0: 22 33 20 32 20 38 20 37 22 7d 3b 0d 0a 09 20 20 "3 2 8 7"};...
0ae0: 76 65 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20 vector <string>
0af0: 72 65 64 58 28 72 65 64 58 5f 2c 20 72 65 64 58 redX(redX_, redX
0b00: 5f 2b 73 69 7a 65 6f 66 28 72 65 64 58 5f 29 2f _+sizeof(redX_)/
0b10: 73 69 7a 65 6f 66 28 2a 72 65 64 58 5f 29 29 3b sizeof(*redX_));
0b20: 20 0d 0a 09 73 74 72 69 6e 67 20 62 6c 75 65 58 ...string blueX
0b30: 5f 5b 5d 20 3d 20 7b 22 32 20 38 22 7d 3b 0d 0a _[] = {"2 8"};..
0b40: 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e . vector <strin
0b50: 67 3e 20 62 6c 75 65 58 28 62 6c 75 65 58 5f 2c g> blueX(blueX_,
0b60: 20 62 6c 75 65 58 5f 2b 73 69 7a 65 6f 66 28 62 blueX_+sizeof(b
0b70: 6c 75 65 58 5f 29 2f 73 69 7a 65 6f 66 28 2a 62 lueX_)/sizeof(*b
0b80: 6c 75 65 58 5f 29 29 3b 20 0d 0a 09 73 74 72 69 lueX_)); ...stri
0b90: 6e 67 20 62 6c 75 65 59 5f 5b 5d 20 3d 20 7b 22 ng blueY_[] = {"
0ba0: 33 20 34 22 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 3 4"};... vecto
0bb0: 72 20 3c 73 74 72 69 6e 67 3e 20 62 6c 75 65 59 r <string> blueY
0bc0: 28 62 6c 75 65 59 5f 2c 20 62 6c 75 65 59 5f 2b (blueY_, blueY_+
0bd0: 73 69 7a 65 6f 66 28 62 6c 75 65 59 5f 29 2f 73 sizeof(blueY_)/s
0be0: 69 7a 65 6f 66 28 2a 62 6c 75 65 59 5f 29 29 3b izeof(*blueY_));
0bf0: 20 0d 0a 09 6c 6f 6e 67 20 6c 6f 6e 67 20 5f 20 ...long long _
0c00: 3d 20 30 4c 4c 3b 20 0d 0a 45 4e 44 0d 0a 43 41 = 0LL; ..END..CA
0c10: 53 45 28 32 29 0d 0a 09 73 74 72 69 6e 67 20 72 SE(2)...string r
0c20: 65 64 58 5f 5b 5d 20 3d 20 7b 22 31 20 32 20 36 edX_[] = {"1 2 6
0c30: 20 39 22 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 9"};... vector
0c40: 20 3c 73 74 72 69 6e 67 3e 20 72 65 64 58 28 72 <string> redX(r
0c50: 65 64 58 5f 2c 20 72 65 64 58 5f 2b 73 69 7a 65 edX_, redX_+size
0c60: 6f 66 28 72 65 64 58 5f 29 2f 73 69 7a 65 6f 66 of(redX_)/sizeof
0c70: 28 2a 72 65 64 58 5f 29 29 3b 20 0d 0a 09 73 74 (*redX_)); ...st
0c80: 72 69 6e 67 20 62 6c 75 65 58 5f 5b 5d 20 3d 20 ring blueX_[] =
0c90: 7b 22 33 20 36 20 38 20 35 22 7d 3b 0d 0a 09 20 {"3 6 8 5"};...
0ca0: 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e vector <string>
0cb0: 20 62 6c 75 65 58 28 62 6c 75 65 58 5f 2c 20 62 blueX(blueX_, b
0cc0: 6c 75 65 58 5f 2b 73 69 7a 65 6f 66 28 62 6c 75 lueX_+sizeof(blu
0cd0: 65 58 5f 29 2f 73 69 7a 65 6f 66 28 2a 62 6c 75 eX_)/sizeof(*blu
0ce0: 65 58 5f 29 29 3b 20 0d 0a 09 73 74 72 69 6e 67 eX_)); ...string
0cf0: 20 62 6c 75 65 59 5f 5b 5d 20 3d 20 7b 22 31 20 blueY_[] = {"1
0d00: 35 20 34 20 33 22 7d 3b 0d 0a 09 20 20 76 65 63 5 4 3"};... vec
0d10: 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20 62 6c 75 tor <string> blu
0d20: 65 59 28 62 6c 75 65 59 5f 2c 20 62 6c 75 65 59 eY(blueY_, blueY
0d30: 5f 2b 73 69 7a 65 6f 66 28 62 6c 75 65 59 5f 29 _+sizeof(blueY_)
0d40: 2f 73 69 7a 65 6f 66 28 2a 62 6c 75 65 59 5f 29 /sizeof(*blueY_)
0d50: 29 3b 20 0d 0a 09 6c 6f 6e 67 20 6c 6f 6e 67 20 ); ...long long
0d60: 5f 20 3d 20 34 4c 4c 3b 20 0d 0a 45 4e 44 0d 0a _ = 4LL; ..END..
0d70: 43 41 53 45 28 33 29 0d 0a 09 73 74 72 69 6e 67 CASE(3)...string
0d80: 20 72 65 64 58 5f 5b 5d 20 3d 20 7b 22 31 30 30 redX_[] = {"100
0d90: 30 30 22 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 00"};... vector
0da0: 20 3c 73 74 72 69 6e 67 3e 20 72 65 64 58 28 72 <string> redX(r
0db0: 65 64 58 5f 2c 20 72 65 64 58 5f 2b 73 69 7a 65 edX_, redX_+size
0dc0: 6f 66 28 72 65 64 58 5f 29 2f 73 69 7a 65 6f 66 of(redX_)/sizeof
0dd0: 28 2a 72 65 64 58 5f 29 29 3b 20 0d 0a 09 73 74 (*redX_)); ...st
0de0: 72 69 6e 67 20 62 6c 75 65 58 5f 5b 5d 20 3d 20 ring blueX_[] =
0df0: 7b 22 31 30 30 30 30 20 39 39 39 39 22 7d 3b 0d {"10000 9999"};.
0e00: 0a 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72 69 .. vector <stri
0e10: 6e 67 3e 20 62 6c 75 65 58 28 62 6c 75 65 58 5f ng> blueX(blueX_
0e20: 2c 20 62 6c 75 65 58 5f 2b 73 69 7a 65 6f 66 28 , blueX_+sizeof(
0e30: 62 6c 75 65 58 5f 29 2f 73 69 7a 65 6f 66 28 2a blueX_)/sizeof(*
0e40: 62 6c 75 65 58 5f 29 29 3b 20 0d 0a 09 73 74 72 blueX_)); ...str
0e50: 69 6e 67 20 62 6c 75 65 59 5f 5b 5d 20 3d 20 7b ing blueY_[] = {
0e60: 22 31 30 30 30 30 20 39 39 39 39 22 7d 3b 0d 0a "10000 9999"};..
0e70: 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e . vector <strin
0e80: 67 3e 20 62 6c 75 65 59 28 62 6c 75 65 59 5f 2c g> blueY(blueY_,
0e90: 20 62 6c 75 65 59 5f 2b 73 69 7a 65 6f 66 28 62 blueY_+sizeof(b
0ea0: 6c 75 65 59 5f 29 2f 73 69 7a 65 6f 66 28 2a 62 lueY_)/sizeof(*b
0eb0: 6c 75 65 59 5f 29 29 3b 20 0d 0a 09 6c 6f 6e 67 lueY_)); ...long
0ec0: 20 6c 6f 6e 67 20 5f 20 3d 20 30 4c 4c 3b 20 0d long _ = 0LL; .
0ed0: 0a 45 4e 44 0d 0a 43 41 53 45 28 34 29 0d 0a 09 .END..CASE(4)...
0ee0: 73 74 72 69 6e 67 20 72 65 64 58 5f 5b 5d 20 3d string redX_[] =
0ef0: 20 7b 22 31 30 30 20 32 22 2c 20 22 30 30 22 2c {"100 2", "00",
0f00: 20 22 20 33 39 22 2c 20 22 39 22 2c 20 22 20 38 " 39", "9", " 8
0f10: 30 30 20 39 30 30 20 39 22 2c 20 22 39 39 22 7d 00 900 9", "99"}
0f20: 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 73 74 ;... vector <st
0f30: 72 69 6e 67 3e 20 72 65 64 58 28 72 65 64 58 5f ring> redX(redX_
0f40: 2c 20 72 65 64 58 5f 2b 73 69 7a 65 6f 66 28 72 , redX_+sizeof(r
0f50: 65 64 58 5f 29 2f 73 69 7a 65 6f 66 28 2a 72 65 edX_)/sizeof(*re
0f60: 64 58 5f 29 29 3b 20 0d 0a 09 73 74 72 69 6e 67 dX_)); ...string
0f70: 20 62 6c 75 65 58 5f 5b 5d 20 3d 20 7b 22 31 35 blueX_[] = {"15
0f80: 22 2c 20 22 30 20 32 35 30 20 22 2c 20 22 33 34 ", "0 250 ", "34
0f90: 39 22 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 9"};... vector
0fa0: 3c 73 74 72 69 6e 67 3e 20 62 6c 75 65 58 28 62 <string> blueX(b
0fb0: 6c 75 65 58 5f 2c 20 62 6c 75 65 58 5f 2b 73 69 lueX_, blueX_+si
0fc0: 7a 65 6f 66 28 62 6c 75 65 58 5f 29 2f 73 69 7a zeof(blueX_)/siz
0fd0: 65 6f 66 28 2a 62 6c 75 65 58 5f 29 29 3b 20 0d eof(*blueX_)); .
0fe0: 0a 09 73 74 72 69 6e 67 20 62 6c 75 65 59 5f 5b ..string blueY_[
0ff0: 5d 20 3d 20 7b 22 32 20 33 20 31 22 7d 3b 0d 0a ] = {"2 3 1"};..
1000: 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e . vector <strin
1010: 67 3e 20 62 6c 75 65 59 28 62 6c 75 65 59 5f 2c g> blueY(blueY_,
1020: 20 62 6c 75 65 59 5f 2b 73 69 7a 65 6f 66 28 62 blueY_+sizeof(b
1030: 6c 75 65 59 5f 29 2f 73 69 7a 65 6f 66 28 2a 62 lueY_)/sizeof(*b
1040: 6c 75 65 59 5f 29 29 3b 20 0d 0a 09 6c 6f 6e 67 lueY_)); ...long
1050: 20 6c 6f 6e 67 20 5f 20 3d 20 31 32 4c 4c 3b 20 long _ = 12LL;
1060: 0d 0a 45 4e 44 0d 0a 43 41 53 45 28 35 29 0d 0a ..END..CASE(5)..
1070: 09 73 74 72 69 6e 67 20 72 65 64 58 5f 5b 5d 20 .string redX_[]
1080: 3d 20 7b 22 31 22 2c 20 22 20 22 2c 20 22 32 22 = {"1", " ", "2"
1090: 2c 20 22 20 22 2c 20 22 33 22 2c 20 22 20 22 2c , " ", "3", " ",
10a0: 20 22 34 20 35 20 36 22 2c 20 22 20 37 20 38 20 "4 5 6", " 7 8
10b0: 39 22 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 9"};... vector
10c0: 3c 73 74 72 69 6e 67 3e 20 72 65 64 58 28 72 65 <string> redX(re
10d0: 64 58 5f 2c 20 72 65 64 58 5f 2b 73 69 7a 65 6f dX_, redX_+sizeo
10e0: 66 28 72 65 64 58 5f 29 2f 73 69 7a 65 6f 66 28 f(redX_)/sizeof(
10f0: 2a 72 65 64 58 5f 29 29 3b 20 0d 0a 09 73 74 72 *redX_)); ...str
1100: 69 6e 67 20 62 6c 75 65 58 5f 5b 5d 20 3d 20 7b ing blueX_[] = {
1110: 22 34 22 2c 20 22 20 22 2c 20 22 35 22 2c 20 22 "4", " ", "5", "
1120: 20 22 2c 20 22 36 22 2c 20 22 20 37 20 22 2c 20 ", "6", " 7 ",
1130: 22 38 22 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 "8"};... vector
1140: 20 3c 73 74 72 69 6e 67 3e 20 62 6c 75 65 58 28 <string> blueX(
1150: 62 6c 75 65 58 5f 2c 20 62 6c 75 65 58 5f 2b 73 blueX_, blueX_+s
1160: 69 7a 65 6f 66 28 62 6c 75 65 58 5f 29 2f 73 69 izeof(blueX_)/si
1170: 7a 65 6f 66 28 2a 62 6c 75 65 58 5f 29 29 3b 20 zeof(*blueX_));
1180: 0d 0a 09 73 74 72 69 6e 67 20 62 6c 75 65 59 5f ...string blueY_
1190: 5b 5d 20 3d 20 7b 22 31 22 2c 20 22 20 32 20 22 [] = {"1", " 2 "
11a0: 2c 20 22 33 20 34 22 2c 20 22 20 35 22 7d 3b 0d , "3 4", " 5"};.
11b0: 0a 09 20 20 76 65 63 74 6f 72 20 3c 73 74 72 69 .. vector <stri
11c0: 6e 67 3e 20 62 6c 75 65 59 28 62 6c 75 65 59 5f ng> blueY(blueY_
11d0: 2c 20 62 6c 75 65 59 5f 2b 73 69 7a 65 6f 66 28 , blueY_+sizeof(
11e0: 62 6c 75 65 59 5f 29 2f 73 69 7a 65 6f 66 28 2a blueY_)/sizeof(*
11f0: 62 6c 75 65 59 5f 29 29 3b 20 0d 0a 09 6c 6f 6e blueY_)); ...lon
1200: 67 20 6c 6f 6e 67 20 5f 20 3d 20 32 30 34 4c 4c g long _ = 204LL
1210: 3b 20 0d 0a 45 4e 44 0d 0a 2f 2a 0d 0a 43 41 53 ; ..END../*..CAS
1220: 45 28 36 29 0d 0a 09 73 74 72 69 6e 67 20 72 65 E(6)...string re
1230: 64 58 5f 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 dX_[] = ;... ve
1240: 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20 72 65 ctor <string> re
1250: 64 58 28 72 65 64 58 5f 2c 20 72 65 64 58 5f 2b dX(redX_, redX_+
1260: 73 69 7a 65 6f 66 28 72 65 64 58 5f 29 2f 73 69 sizeof(redX_)/si
1270: 7a 65 6f 66 28 2a 72 65 64 58 5f 29 29 3b 20 0d zeof(*redX_)); .
1280: 0a 09 73 74 72 69 6e 67 20 62 6c 75 65 58 5f 5b ..string blueX_[
1290: 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63 74 6f 72 ] = ;... vector
12a0: 20 3c 73 74 72 69 6e 67 3e 20 62 6c 75 65 58 28 <string> blueX(
12b0: 62 6c 75 65 58 5f 2c 20 62 6c 75 65 58 5f 2b 73 blueX_, blueX_+s
12c0: 69 7a 65 6f 66 28 62 6c 75 65 58 5f 29 2f 73 69 izeof(blueX_)/si
12d0: 7a 65 6f 66 28 2a 62 6c 75 65 58 5f 29 29 3b 20 zeof(*blueX_));
12e0: 0d 0a 09 73 74 72 69 6e 67 20 62 6c 75 65 59 5f ...string blueY_
12f0: 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63 74 6f [] = ;... vecto
1300: 72 20 3c 73 74 72 69 6e 67 3e 20 62 6c 75 65 59 r <string> blueY
1310: 28 62 6c 75 65 59 5f 2c 20 62 6c 75 65 59 5f 2b (blueY_, blueY_+
1320: 73 69 7a 65 6f 66 28 62 6c 75 65 59 5f 29 2f 73 sizeof(blueY_)/s
1330: 69 7a 65 6f 66 28 2a 62 6c 75 65 59 5f 29 29 3b izeof(*blueY_));
1340: 20 0d 0a 09 6c 6f 6e 67 20 6c 6f 6e 67 20 5f 20 ...long long _
1350: 3d 20 4c 4c 3b 20 0d 0a 45 4e 44 0d 0a 43 41 53 = LL; ..END..CAS
1360: 45 28 37 29 0d 0a 09 73 74 72 69 6e 67 20 72 65 E(7)...string re
1370: 64 58 5f 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 dX_[] = ;... ve
1380: 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20 72 65 ctor <string> re
1390: 64 58 28 72 65 64 58 5f 2c 20 72 65 64 58 5f 2b dX(redX_, redX_+
13a0: 73 69 7a 65 6f 66 28 72 65 64 58 5f 29 2f 73 69 sizeof(redX_)/si
13b0: 7a 65 6f 66 28 2a 72 65 64 58 5f 29 29 3b 20 0d zeof(*redX_)); .
13c0: 0a 09 73 74 72 69 6e 67 20 62 6c 75 65 58 5f 5b ..string blueX_[
13d0: 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63 74 6f 72 ] = ;... vector
13e0: 20 3c 73 74 72 69 6e 67 3e 20 62 6c 75 65 58 28 <string> blueX(
13f0: 62 6c 75 65 58 5f 2c 20 62 6c 75 65 58 5f 2b 73 blueX_, blueX_+s
1400: 69 7a 65 6f 66 28 62 6c 75 65 58 5f 29 2f 73 69 izeof(blueX_)/si
1410: 7a 65 6f 66 28 2a 62 6c 75 65 58 5f 29 29 3b 20 zeof(*blueX_));
1420: 0d 0a 09 73 74 72 69 6e 67 20 62 6c 75 65 59 5f ...string blueY_
1430: 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63 74 6f [] = ;... vecto
1440: 72 20 3c 73 74 72 69 6e 67 3e 20 62 6c 75 65 59 r <string> blueY
1450: 28 62 6c 75 65 59 5f 2c 20 62 6c 75 65 59 5f 2b (blueY_, blueY_+
1460: 73 69 7a 65 6f 66 28 62 6c 75 65 59 5f 29 2f 73 sizeof(blueY_)/s
1470: 69 7a 65 6f 66 28 2a 62 6c 75 65 59 5f 29 29 3b izeof(*blueY_));
1480: 20 0d 0a 09 6c 6f 6e 67 20 6c 6f 6e 67 20 5f 20 ...long long _
1490: 3d 20 4c 4c 3b 20 0d 0a 45 4e 44 0d 0a 09 2a 2f = LL; ..END...*/
14a0: 0d 0a 7d 0d 0a 2f 2f 20 45 4e 44 20 43 55 54 20 ..}..// END CUT
14b0: 48 45 52 45 0d 0a HERE..