Hex Artifact Content
Not logged in

Artifact a5fd0a0c4f174a5f366f028afca0da2400b6e0fd:


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