Hex Artifact Content
Not logged in

Artifact 0d05f3c7bb207c017a021510c7710c6357451464:


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 74 79 70 65 64 65 66 20 69 6e  P;....typedef in
01a0: 74 20 56 65 72 74 3b 0d 0a 74 79 70 65 64 65 66  t Vert;..typedef
01b0: 20 69 6e 74 20 43 6f 73 74 3b 0d 0a 74 79 70 65   int Cost;..type
01c0: 64 65 66 20 70 61 69 72 3c 43 6f 73 74 2c 56 65  def pair<Cost,Ve
01d0: 72 74 3e 20 45 64 67 65 3b 0d 0a 74 79 70 65 64  rt> Edge;..typed
01e0: 65 66 20 76 65 63 74 6f 72 3c 45 64 67 65 3e 20  ef vector<Edge> 
01f0: 45 64 67 65 73 3b 0d 0a 74 79 70 65 64 65 66 20  Edges;..typedef 
0200: 76 65 63 74 6f 72 3c 45 64 67 65 73 3e 20 47 72  vector<Edges> Gr
0210: 61 70 68 3b 0d 0a 0d 0a 63 6c 61 73 73 20 46 6f  aph;....class Fo
0220: 78 4d 65 65 74 69 6e 67 20 7b 20 70 75 62 6c 69  xMeeting { publi
0230: 63 3a 0d 0a 09 69 6e 74 20 6d 61 78 44 69 73 74  c:...int maxDist
0240: 61 6e 63 65 28 76 65 63 74 6f 72 20 3c 69 6e 74  ance(vector <int
0250: 3e 20 41 2c 20 76 65 63 74 6f 72 20 3c 69 6e 74  > A, vector <int
0260: 3e 20 42 2c 20 76 65 63 74 6f 72 20 3c 69 6e 74  > B, vector <int
0270: 3e 20 4c 2c 20 76 65 63 74 6f 72 20 3c 69 6e 74  > L, vector <int
0280: 3e 20 66 6f 78 65 73 29 0d 0a 09 7b 0d 0a 09 09  > foxes)...{....
0290: 2f 2f 20 49 20 68 61 74 65 20 31 2d 69 6e 64 65  // I hate 1-inde
02a0: 78 65 64 20 6e 75 6d 62 65 72 69 6e 67 2e 0d 0a  xed numbering...
02b0: 09 09 66 6f 72 28 61 75 74 6f 26 20 61 69 3a 20  ..for(auto& ai: 
02c0: 41 29 20 61 69 2d 2d 3b 0d 0a 09 09 66 6f 72 28  A) ai--;....for(
02d0: 61 75 74 6f 26 20 62 69 3a 20 42 29 20 62 69 2d  auto& bi: B) bi-
02e0: 2d 3b 0d 0a 09 09 66 6f 72 28 61 75 74 6f 26 20  -;....for(auto& 
02f0: 66 69 3a 20 66 6f 78 65 73 29 20 66 69 2d 2d 3b  fi: foxes) fi--;
0300: 0d 0a 0d 0a 09 09 63 6f 6e 73 74 20 69 6e 74 20  ......const int 
0310: 4e 20 3d 20 41 2e 73 69 7a 65 28 29 2b 31 3b 0d  N = A.size()+1;.
0320: 0a 09 09 69 66 28 4e 3d 3d 31 29 0d 0a 09 09 09  ...if(N==1).....
0330: 72 65 74 75 72 6e 20 30 3b 0d 0a 0d 0a 09 09 47  return 0;......G
0340: 72 61 70 68 20 47 28 4e 29 3b 0d 0a 09 09 66 6f  raph G(N);....fo
0350: 72 28 69 6e 74 20 69 3d 30 3b 20 69 3c 4e 2d 31  r(int i=0; i<N-1
0360: 3b 20 2b 2b 69 29 20 7b 0d 0a 09 09 09 47 5b 41  ; ++i) {.....G[A
0370: 5b 69 5d 5d 2e 65 6d 70 6c 61 63 65 5f 62 61 63  [i]].emplace_bac
0380: 6b 28 4c 5b 69 5d 2c 20 42 5b 69 5d 29 3b 0d 0a  k(L[i], B[i]);..
0390: 09 09 09 47 5b 42 5b 69 5d 5d 2e 65 6d 70 6c 61  ...G[B[i]].empla
03a0: 63 65 5f 62 61 63 6b 28 4c 5b 69 5d 2c 20 41 5b  ce_back(L[i], A[
03b0: 69 5d 29 3b 0d 0a 09 09 7d 0d 0a 09 09 76 65 63  i]);....}....vec
03c0: 74 6f 72 3c 62 6f 6f 6c 3e 20 46 6f 78 65 64 28  tor<bool> Foxed(
03d0: 4e 2c 20 66 61 6c 73 65 29 3b 0d 0a 09 09 66 6f  N, false);....fo
03e0: 72 28 69 6e 74 20 66 69 3a 20 66 6f 78 65 73 29  r(int fi: foxes)
03f0: 0d 0a 09 09 09 46 6f 78 65 64 5b 66 69 5d 20 3d  .....Foxed[fi] =
0400: 20 74 72 75 65 3b 0d 0a 0d 0a 09 09 69 6e 74 20   true;......int 
0410: 62 65 73 74 20 3d 20 30 78 37 66 66 66 66 66 66  best = 0x7ffffff
0420: 66 3b 0d 0a 09 09 66 6f 72 28 69 6e 74 20 43 3d  f;....for(int C=
0430: 30 3b 20 43 3c 4e 3b 20 2b 2b 43 29 0d 0a 09 09  0; C<N; ++C)....
0440: 09 62 65 73 74 20 3d 20 6d 69 6e 28 62 65 73 74  .best = min(best
0450: 2c 20 73 6f 6c 76 65 5f 63 65 6e 74 65 72 65 64  , solve_centered
0460: 28 47 2c 20 43 2c 20 46 6f 78 65 64 29 29 3b 0d  (G, C, Foxed));.
0470: 0a 09 09 72 65 74 75 72 6e 20 62 65 73 74 3b 0d  ...return best;.
0480: 0a 09 7d 0d 0a 0d 0a 09 69 6e 74 20 73 6f 6c 76  ..}.....int solv
0490: 65 5f 63 65 6e 74 65 72 65 64 28 63 6f 6e 73 74  e_centered(const
04a0: 20 47 72 61 70 68 26 20 47 2c 20 69 6e 74 20 52   Graph& G, int R
04b0: 6f 6f 74 2c 20 63 6f 6e 73 74 20 76 65 63 74 6f  oot, const vecto
04c0: 72 3c 62 6f 6f 6c 3e 26 20 46 6f 78 65 64 29 0d  r<bool>& Foxed).
04d0: 0a 09 7b 0d 0a 09 09 69 6e 74 20 4c 3d 2d 31 2c  ..{....int L=-1,
04e0: 20 52 3d 35 30 30 30 30 30 30 3b 20 2f 2f 20 28   R=5000000; // (
04f0: 4c 2c 52 29 0d 0a 09 09 77 68 69 6c 65 28 52 2d  L,R)....while(R-
0500: 4c 3e 31 29 20 7b 0d 0a 09 09 09 69 6e 74 20 43  L>1) {.....int C
0510: 20 3d 20 28 4c 2b 52 29 2f 32 3b 0d 0a 09 09 09   = (L+R)/2;.....
0520: 28 63 61 6e 28 47 2c 20 52 6f 6f 74 2c 20 46 6f  (can(G, Root, Fo
0530: 78 65 64 2c 20 43 29 20 3f 20 52 20 3a 20 4c 29  xed, C) ? R : L)
0540: 20 3d 20 43 3b 0d 0a 09 09 7d 0d 0a 09 09 72 65   = C;....}....re
0550: 74 75 72 6e 20 52 3b 0d 0a 09 7d 0d 0a 0d 0a 09  turn R;...}.....
0560: 62 6f 6f 6c 20 63 61 6e 28 63 6f 6e 73 74 20 47  bool can(const G
0570: 72 61 70 68 26 20 47 2c 20 69 6e 74 20 52 6f 6f  raph& G, int Roo
0580: 74 2c 20 63 6f 6e 73 74 20 76 65 63 74 6f 72 3c  t, const vector<
0590: 62 6f 6f 6c 3e 26 20 46 6f 78 65 64 2c 20 69 6e  bool>& Foxed, in
05a0: 74 20 4d 61 78 4d 6f 76 65 29 20 7b 0d 0a 09 09  t MaxMove) {....
05b0: 65 6e 75 6d 20 53 74 61 74 65 20 7b 46 52 45 45  enum State {FREE
05c0: 2c 20 4d 55 53 54 42 45 46 49 4c 4c 45 44 2c 20  , MUSTBEFILLED, 
05d0: 42 41 44 7d 3b 0d 0a 09 09 74 79 70 65 64 65 66  BAD};....typedef
05e0: 20 70 61 69 72 3c 53 74 61 74 65 2c 20 76 65 63   pair<State, vec
05f0: 74 6f 72 3c 43 6f 73 74 3e 3e 20 52 65 73 75 6c  tor<Cost>> Resul
0600: 74 3b 0d 0a 09 09 66 75 6e 63 74 69 6f 6e 3c 52  t;....function<R
0610: 65 73 75 6c 74 28 56 65 72 74 2c 56 65 72 74 29  esult(Vert,Vert)
0620: 3e 20 72 65 63 3b 0d 0a 09 09 72 65 63 20 3d 20  > rec;....rec = 
0630: 5b 26 5d 28 56 65 72 74 20 70 2c 20 56 65 72 74  [&](Vert p, Vert
0640: 20 76 29 2d 3e 52 65 73 75 6c 74 20 7b 0d 0a 09   v)->Result {...
0650: 09 09 43 6f 73 74 20 70 61 72 65 6e 74 5f 65 64  ..Cost parent_ed
0660: 67 65 20 3d 20 30 3b 0d 0a 09 09 09 62 6f 6f 6c  ge = 0;.....bool
0670: 20 6d 75 73 74 5f 66 69 6c 6c 20 3d 20 66 61 6c   must_fill = fal
0680: 73 65 3b 0d 0a 09 09 09 76 65 63 74 6f 72 3c 43  se;.....vector<C
0690: 6f 73 74 3e 20 72 65 61 63 68 65 64 3b 0d 0a 09  ost> reached;...
06a0: 09 09 66 6f 72 28 61 75 74 6f 26 20 65 3a 20 47  ..for(auto& e: G
06b0: 5b 76 5d 29 0d 0a 09 09 09 09 69 66 28 65 2e 73  [v])......if(e.s
06c0: 65 63 6f 6e 64 20 21 3d 20 70 29 20 7b 0d 0a 09  econd != p) {...
06d0: 09 09 09 09 52 65 73 75 6c 74 20 73 72 20 3d 20  ....Result sr = 
06e0: 72 65 63 28 76 2c 20 65 2e 73 65 63 6f 6e 64 29  rec(v, e.second)
06f0: 3b 0d 0a 09 09 09 09 09 69 66 28 73 72 2e 66 69  ;.......if(sr.fi
0700: 72 73 74 20 3d 3d 20 42 41 44 29 0d 0a 09 09 09  rst == BAD).....
0710: 09 09 09 72 65 74 75 72 6e 20 52 65 73 75 6c 74  ...return Result
0720: 28 42 41 44 2c 20 76 65 63 74 6f 72 3c 43 6f 73  (BAD, vector<Cos
0730: 74 3e 28 29 29 3b 0d 0a 09 09 09 09 09 69 66 28  t>());.......if(
0740: 73 72 2e 66 69 72 73 74 20 3d 3d 20 4d 55 53 54  sr.first == MUST
0750: 42 45 46 49 4c 4c 45 44 29 0d 0a 09 09 09 09 09  BEFILLED).......
0760: 09 6d 75 73 74 5f 66 69 6c 6c 20 3d 20 74 72 75  .must_fill = tru
0770: 65 3b 0d 0a 09 09 09 09 09 72 65 61 63 68 65 64  e;.......reached
0780: 2e 69 6e 73 65 72 74 28 72 65 61 63 68 65 64 2e  .insert(reached.
0790: 65 6e 64 28 29 2c 20 73 72 2e 73 65 63 6f 6e 64  end(), sr.second
07a0: 2e 62 65 67 69 6e 28 29 2c 20 73 72 2e 73 65 63  .begin(), sr.sec
07b0: 6f 6e 64 2e 65 6e 64 28 29 29 3b 0d 0a 09 09 09  ond.end());.....
07c0: 09 7d 20 65 6c 73 65 20 7b 0d 0a 09 09 09 09 09  .} else {.......
07d0: 70 61 72 65 6e 74 5f 65 64 67 65 20 3d 20 65 2e  parent_edge = e.
07e0: 66 69 72 73 74 3b 0d 0a 09 09 09 09 7d 0d 0a 09  first;......}...
07f0: 09 09 69 66 28 46 6f 78 65 64 5b 76 5d 29 0d 0a  ..if(Foxed[v])..
0800: 09 09 09 09 72 65 61 63 68 65 64 2e 65 6d 70 6c  ....reached.empl
0810: 61 63 65 5f 62 61 63 6b 28 4d 61 78 4d 6f 76 65  ace_back(MaxMove
0820: 29 3b 0d 0a 0d 0a 09 09 09 73 6f 72 74 28 72 65  );.......sort(re
0830: 61 63 68 65 64 2e 72 62 65 67 69 6e 28 29 2c 20  ached.rbegin(), 
0840: 72 65 61 63 68 65 64 2e 72 65 6e 64 28 29 29 3b  reached.rend());
0850: 0d 0a 09 09 09 69 66 28 6d 75 73 74 5f 66 69 6c  .....if(must_fil
0860: 6c 29 20 7b 0d 0a 09 09 09 09 69 66 28 72 65 61  l) {......if(rea
0870: 63 68 65 64 2e 65 6d 70 74 79 28 29 29 0d 0a 09  ched.empty())...
0880: 09 09 09 09 72 65 74 75 72 6e 20 52 65 73 75 6c  ....return Resul
0890: 74 28 42 41 44 2c 20 76 65 63 74 6f 72 3c 43 6f  t(BAD, vector<Co
08a0: 73 74 3e 28 29 29 3b 0d 0a 09 09 09 09 72 65 61  st>());......rea
08b0: 63 68 65 64 2e 70 6f 70 5f 62 61 63 6b 28 29 3b  ched.pop_back();
08c0: 0d 0a 09 09 09 7d 0d 0a 09 09 09 76 65 63 74 6f  .....}.....vecto
08d0: 72 3c 43 6f 73 74 3e 20 72 72 3b 0d 0a 09 09 09  r<Cost> rr;.....
08e0: 66 6f 72 28 61 75 74 6f 26 20 72 69 3a 20 72 65  for(auto& ri: re
08f0: 61 63 68 65 64 29 0d 0a 09 09 09 09 69 66 28 72  ached)......if(r
0900: 69 20 2d 20 70 61 72 65 6e 74 5f 65 64 67 65 20  i - parent_edge 
0910: 3c 20 30 29 0d 0a 09 09 09 09 09 6d 75 73 74 5f  < 0).......must_
0920: 66 69 6c 6c 20 3d 20 74 72 75 65 3b 0d 0a 09 09  fill = true;....
0930: 09 09 65 6c 73 65 0d 0a 09 09 09 09 09 72 72 2e  ..else.......rr.
0940: 70 75 73 68 5f 62 61 63 6b 28 72 69 2d 70 61 72  push_back(ri-par
0950: 65 6e 74 5f 65 64 67 65 29 3b 0d 0a 09 09 09 72  ent_edge);.....r
0960: 65 74 75 72 6e 20 52 65 73 75 6c 74 28 6d 75 73  eturn Result(mus
0970: 74 5f 66 69 6c 6c 20 3f 20 4d 55 53 54 42 45 46  t_fill ? MUSTBEF
0980: 49 4c 4c 45 44 20 3a 20 46 52 45 45 2c 20 72 72  ILLED : FREE, rr
0990: 29 3b 0d 0a 09 09 7d 3b 0d 0a 0d 0a 09 09 52 65  );....};......Re
09a0: 73 75 6c 74 20 72 20 3d 20 72 65 63 28 2d 31 2c  sult r = rec(-1,
09b0: 20 52 6f 6f 74 29 3b 0d 0a 09 09 72 65 74 75 72   Root);....retur
09c0: 6e 20 28 72 2e 66 69 72 73 74 20 21 3d 20 42 41  n (r.first != BA
09d0: 44 29 3b 0d 0a 09 7d 0d 0a 7d 3b 0d 0a 0d 0a 2f  D);...}..};..../
09e0: 2f 20 42 45 47 49 4e 20 43 55 54 20 48 45 52 45  / BEGIN CUT HERE
09f0: 0d 0a 23 69 6e 63 6c 75 64 65 20 3c 63 74 69 6d  ..#include <ctim
0a00: 65 3e 0d 0a 64 6f 75 62 6c 65 20 73 74 61 72 74  e>..double start
0a10: 5f 74 69 6d 65 3b 20 73 74 72 69 6e 67 20 74 69  _time; string ti
0a20: 6d 65 72 28 29 0d 0a 20 7b 20 6f 73 74 72 69 6e  mer().. { ostrin
0a30: 67 73 74 72 65 61 6d 20 6f 73 3b 20 6f 73 20 3c  gstream os; os <
0a40: 3c 20 22 20 28 22 20 3c 3c 20 69 6e 74 28 28 63  < " (" << int((c
0a50: 6c 6f 63 6b 28 29 2d 73 74 61 72 74 5f 74 69 6d  lock()-start_tim
0a60: 65 29 2f 43 4c 4f 43 4b 53 5f 50 45 52 5f 53 45  e)/CLOCKS_PER_SE
0a70: 43 2a 31 30 30 30 29 20 3c 3c 20 22 20 6d 73 65  C*1000) << " mse
0a80: 63 29 22 3b 20 72 65 74 75 72 6e 20 6f 73 2e 73  c)"; return os.s
0a90: 74 72 28 29 3b 20 7d 0d 0a 74 65 6d 70 6c 61 74  tr(); }..templat
0aa0: 65 3c 74 79 70 65 6e 61 6d 65 20 54 3e 20 6f 73  e<typename T> os
0ab0: 74 72 65 61 6d 26 20 6f 70 65 72 61 74 6f 72 3c  tream& operator<
0ac0: 3c 28 6f 73 74 72 65 61 6d 26 20 6f 73 2c 20 63  <(ostream& os, c
0ad0: 6f 6e 73 74 20 76 65 63 74 6f 72 3c 54 3e 26 20  onst vector<T>& 
0ae0: 76 29 0d 0a 20 7b 20 6f 73 20 3c 3c 20 22 7b 20  v).. { os << "{ 
0af0: 22 3b 0d 0a 20 20 20 66 6f 72 28 74 79 70 65 6e  ";..   for(typen
0b00: 61 6d 65 20 76 65 63 74 6f 72 3c 54 3e 3a 3a 63  ame vector<T>::c
0b10: 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20 69 74  onst_iterator it
0b20: 3d 76 2e 62 65 67 69 6e 28 29 3b 20 69 74 21 3d  =v.begin(); it!=
0b30: 76 2e 65 6e 64 28 29 3b 20 2b 2b 69 74 29 0d 0a  v.end(); ++it)..
0b40: 20 20 20 6f 73 20 3c 3c 20 27 5c 22 27 20 3c 3c     os << '\"' <<
0b50: 20 2a 69 74 20 3c 3c 20 27 5c 22 27 20 3c 3c 20   *it << '\"' << 
0b60: 28 69 74 2b 31 3d 3d 76 2e 65 6e 64 28 29 20 3f  (it+1==v.end() ?
0b70: 20 22 22 20 3a 20 22 2c 20 22 29 3b 20 6f 73 20   "" : ", "); os 
0b80: 3c 3c 20 22 20 7d 22 3b 20 72 65 74 75 72 6e 20  << " }"; return 
0b90: 6f 73 3b 20 7d 0d 0a 76 6f 69 64 20 76 65 72 69  os; }..void veri
0ba0: 66 79 5f 63 61 73 65 28 63 6f 6e 73 74 20 69 6e  fy_case(const in
0bb0: 74 26 20 45 78 70 65 63 74 65 64 2c 20 63 6f 6e  t& Expected, con
0bc0: 73 74 20 69 6e 74 26 20 52 65 63 65 69 76 65 64  st int& Received
0bd0: 29 20 7b 0d 0a 20 62 6f 6f 6c 20 6f 6b 20 3d 20  ) {.. bool ok = 
0be0: 28 45 78 70 65 63 74 65 64 20 3d 3d 20 52 65 63  (Expected == Rec
0bf0: 65 69 76 65 64 29 3b 0d 0a 20 69 66 28 6f 6b 29  eived);.. if(ok)
0c00: 20 63 65 72 72 20 3c 3c 20 22 50 41 53 53 45 44   cerr << "PASSED
0c10: 22 20 3c 3c 20 74 69 6d 65 72 28 29 20 3c 3c 20  " << timer() << 
0c20: 65 6e 64 6c 3b 20 20 65 6c 73 65 20 7b 20 63 65  endl;  else { ce
0c30: 72 72 20 3c 3c 20 22 46 41 49 4c 45 44 22 20 3c  rr << "FAILED" <
0c40: 3c 20 74 69 6d 65 72 28 29 20 3c 3c 20 65 6e 64  < timer() << end
0c50: 6c 3b 0d 0a 20 63 65 72 72 20 3c 3c 20 22 5c 74  l;.. cerr << "\t
0c60: 6f 3a 20 5c 22 22 20 3c 3c 20 45 78 70 65 63 74  o: \"" << Expect
0c70: 65 64 20 3c 3c 20 27 5c 22 27 20 3c 3c 20 65 6e  ed << '\"' << en
0c80: 64 6c 20 3c 3c 20 22 5c 74 78 3a 20 5c 22 22 20  dl << "\tx: \"" 
0c90: 3c 3c 20 52 65 63 65 69 76 65 64 20 3c 3c 20 27  << Received << '
0ca0: 5c 22 27 20 3c 3c 20 65 6e 64 6c 3b 20 7d 20 7d  \"' << endl; } }
0cb0: 0d 0a 23 64 65 66 69 6e 65 20 43 41 53 45 28 4e  ..#define CASE(N
0cc0: 29 20 7b 63 65 72 72 20 3c 3c 20 22 54 65 73 74  ) {cerr << "Test
0cd0: 20 43 61 73 65 20 23 22 20 3c 3c 20 4e 20 3c 3c   Case #" << N <<
0ce0: 20 22 2e 2e 2e 22 20 3c 3c 20 66 6c 75 73 68 3b   "..." << flush;
0cf0: 20 73 74 61 72 74 5f 74 69 6d 65 3d 63 6c 6f 63   start_time=cloc
0d00: 6b 28 29 3b 0d 0a 23 64 65 66 69 6e 65 20 45 4e  k();..#define EN
0d10: 44 09 20 76 65 72 69 66 79 5f 63 61 73 65 28 5f  D. verify_case(_
0d20: 2c 20 46 6f 78 4d 65 65 74 69 6e 67 28 29 2e 6d  , FoxMeeting().m
0d30: 61 78 44 69 73 74 61 6e 63 65 28 41 2c 20 42 2c  axDistance(A, B,
0d40: 20 4c 2c 20 66 6f 78 65 73 29 29 3b 7d 0d 0a 69   L, foxes));}..i
0d50: 6e 74 20 6d 61 69 6e 28 29 7b 0d 0a 0d 0a 43 41  nt main(){....CA
0d60: 53 45 28 30 29 0d 0a 09 69 6e 74 20 41 5f 5b 5d  SE(0)...int A_[]
0d70: 20 3d 20 7b 31 7d 3b 0d 0a 09 20 20 76 65 63 74   = {1};...  vect
0d80: 6f 72 20 3c 69 6e 74 3e 20 41 28 41 5f 2c 20 41  or <int> A(A_, A
0d90: 5f 2b 73 69 7a 65 6f 66 28 41 5f 29 2f 73 69 7a  _+sizeof(A_)/siz
0da0: 65 6f 66 28 2a 41 5f 29 29 3b 20 0d 0a 09 69 6e  eof(*A_)); ...in
0db0: 74 20 42 5f 5b 5d 20 3d 20 7b 32 7d 3b 0d 0a 09  t B_[] = {2};...
0dc0: 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 42    vector <int> B
0dd0: 28 42 5f 2c 20 42 5f 2b 73 69 7a 65 6f 66 28 42  (B_, B_+sizeof(B
0de0: 5f 29 2f 73 69 7a 65 6f 66 28 2a 42 5f 29 29 3b  _)/sizeof(*B_));
0df0: 20 0d 0a 09 69 6e 74 20 4c 5f 5b 5d 20 3d 20 7b   ...int L_[] = {
0e00: 35 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c  5};...  vector <
0e10: 69 6e 74 3e 20 4c 28 4c 5f 2c 20 4c 5f 2b 73 69  int> L(L_, L_+si
0e20: 7a 65 6f 66 28 4c 5f 29 2f 73 69 7a 65 6f 66 28  zeof(L_)/sizeof(
0e30: 2a 4c 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 66 6f  *L_)); ...int fo
0e40: 78 65 73 5f 5b 5d 20 3d 20 7b 31 2c 20 32 7d 3b  xes_[] = {1, 2};
0e50: 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74  ...  vector <int
0e60: 3e 20 66 6f 78 65 73 28 66 6f 78 65 73 5f 2c 20  > foxes(foxes_, 
0e70: 66 6f 78 65 73 5f 2b 73 69 7a 65 6f 66 28 66 6f  foxes_+sizeof(fo
0e80: 78 65 73 5f 29 2f 73 69 7a 65 6f 66 28 2a 66 6f  xes_)/sizeof(*fo
0e90: 78 65 73 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 5f  xes_)); ...int _
0ea0: 20 3d 20 30 3b 20 0d 0a 45 4e 44 0d 0a 43 41 53   = 0; ..END..CAS
0eb0: 45 28 31 29 0d 0a 09 69 6e 74 20 41 5f 5b 5d 20  E(1)...int A_[] 
0ec0: 3d 20 7b 31 2c 20 32 7d 3b 0d 0a 09 20 20 76 65  = {1, 2};...  ve
0ed0: 63 74 6f 72 20 3c 69 6e 74 3e 20 41 28 41 5f 2c  ctor <int> A(A_,
0ee0: 20 41 5f 2b 73 69 7a 65 6f 66 28 41 5f 29 2f 73   A_+sizeof(A_)/s
0ef0: 69 7a 65 6f 66 28 2a 41 5f 29 29 3b 20 0d 0a 09  izeof(*A_)); ...
0f00: 69 6e 74 20 42 5f 5b 5d 20 3d 20 7b 32 2c 20 33  int B_[] = {2, 3
0f10: 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69  };...  vector <i
0f20: 6e 74 3e 20 42 28 42 5f 2c 20 42 5f 2b 73 69 7a  nt> B(B_, B_+siz
0f30: 65 6f 66 28 42 5f 29 2f 73 69 7a 65 6f 66 28 2a  eof(B_)/sizeof(*
0f40: 42 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 4c 5f 5b  B_)); ...int L_[
0f50: 5d 20 3d 20 7b 31 2c 20 31 7d 3b 0d 0a 09 20 20  ] = {1, 1};...  
0f60: 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 4c 28 4c  vector <int> L(L
0f70: 5f 2c 20 4c 5f 2b 73 69 7a 65 6f 66 28 4c 5f 29  _, L_+sizeof(L_)
0f80: 2f 73 69 7a 65 6f 66 28 2a 4c 5f 29 29 3b 20 0d  /sizeof(*L_)); .
0f90: 0a 09 69 6e 74 20 66 6f 78 65 73 5f 5b 5d 20 3d  ..int foxes_[] =
0fa0: 20 7b 31 2c 20 33 7d 3b 0d 0a 09 20 20 76 65 63   {1, 3};...  vec
0fb0: 74 6f 72 20 3c 69 6e 74 3e 20 66 6f 78 65 73 28  tor <int> foxes(
0fc0: 66 6f 78 65 73 5f 2c 20 66 6f 78 65 73 5f 2b 73  foxes_, foxes_+s
0fd0: 69 7a 65 6f 66 28 66 6f 78 65 73 5f 29 2f 73 69  izeof(foxes_)/si
0fe0: 7a 65 6f 66 28 2a 66 6f 78 65 73 5f 29 29 3b 20  zeof(*foxes_)); 
0ff0: 0d 0a 09 69 6e 74 20 5f 20 3d 20 31 3b 20 0d 0a  ...int _ = 1; ..
1000: 45 4e 44 0d 0a 43 41 53 45 28 32 29 0d 0a 09 69  END..CASE(2)...i
1010: 6e 74 20 41 5f 5b 5d 20 3d 20 7b 31 2c 20 32 7d  nt A_[] = {1, 2}
1020: 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e  ;...  vector <in
1030: 74 3e 20 41 28 41 5f 2c 20 41 5f 2b 73 69 7a 65  t> A(A_, A_+size
1040: 6f 66 28 41 5f 29 2f 73 69 7a 65 6f 66 28 2a 41  of(A_)/sizeof(*A
1050: 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 42 5f 5b 5d  _)); ...int B_[]
1060: 20 3d 20 7b 32 2c 20 33 7d 3b 0d 0a 09 20 20 76   = {2, 3};...  v
1070: 65 63 74 6f 72 20 3c 69 6e 74 3e 20 42 28 42 5f  ector <int> B(B_
1080: 2c 20 42 5f 2b 73 69 7a 65 6f 66 28 42 5f 29 2f  , B_+sizeof(B_)/
1090: 73 69 7a 65 6f 66 28 2a 42 5f 29 29 3b 20 0d 0a  sizeof(*B_)); ..
10a0: 09 69 6e 74 20 4c 5f 5b 5d 20 3d 20 7b 31 2c 20  .int L_[] = {1, 
10b0: 31 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c  1};...  vector <
10c0: 69 6e 74 3e 20 4c 28 4c 5f 2c 20 4c 5f 2b 73 69  int> L(L_, L_+si
10d0: 7a 65 6f 66 28 4c 5f 29 2f 73 69 7a 65 6f 66 28  zeof(L_)/sizeof(
10e0: 2a 4c 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 66 6f  *L_)); ...int fo
10f0: 78 65 73 5f 5b 5d 20 3d 20 7b 31 2c 20 32 2c 20  xes_[] = {1, 2, 
1100: 33 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c  3};...  vector <
1110: 69 6e 74 3e 20 66 6f 78 65 73 28 66 6f 78 65 73  int> foxes(foxes
1120: 5f 2c 20 66 6f 78 65 73 5f 2b 73 69 7a 65 6f 66  _, foxes_+sizeof
1130: 28 66 6f 78 65 73 5f 29 2f 73 69 7a 65 6f 66 28  (foxes_)/sizeof(
1140: 2a 66 6f 78 65 73 5f 29 29 3b 20 0d 0a 09 69 6e  *foxes_)); ...in
1150: 74 20 5f 20 3d 20 30 3b 20 0d 0a 45 4e 44 0d 0a  t _ = 0; ..END..
1160: 43 41 53 45 28 33 29 0d 0a 09 69 6e 74 20 41 5f  CASE(3)...int A_
1170: 5b 5d 20 3d 20 7b 31 30 2c 38 2c 33 2c 37 2c 32  [] = {10,8,3,7,2
1180: 2c 36 2c 39 2c 31 2c 34 7d 3b 0d 0a 09 20 20 76  ,6,9,1,4};...  v
1190: 65 63 74 6f 72 20 3c 69 6e 74 3e 20 41 28 41 5f  ector <int> A(A_
11a0: 2c 20 41 5f 2b 73 69 7a 65 6f 66 28 41 5f 29 2f  , A_+sizeof(A_)/
11b0: 73 69 7a 65 6f 66 28 2a 41 5f 29 29 3b 20 0d 0a  sizeof(*A_)); ..
11c0: 09 69 6e 74 20 42 5f 5b 5d 20 3d 20 7b 35 2c 35  .int B_[] = {5,5
11d0: 2c 38 2c 31 30 2c 35 2c 35 2c 36 2c 31 30 2c 33  ,8,10,5,5,6,10,3
11e0: 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69  };...  vector <i
11f0: 6e 74 3e 20 42 28 42 5f 2c 20 42 5f 2b 73 69 7a  nt> B(B_, B_+siz
1200: 65 6f 66 28 42 5f 29 2f 73 69 7a 65 6f 66 28 2a  eof(B_)/sizeof(*
1210: 42 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 4c 5f 5b  B_)); ...int L_[
1220: 5d 20 3d 20 7b 37 31 38 34 36 2c 31 30 39 35 31  ] = {71846,10951
1230: 2c 34 32 32 36 35 2c 33 37 38 33 32 2c 32 39 34  ,42265,37832,294
1240: 33 39 2c 39 35 36 37 36 2c 38 33 36 36 31 2c 32  39,95676,83661,2
1250: 38 31 38 36 2c 32 31 32 31 36 7d 3b 0d 0a 09 20  8186,21216};... 
1260: 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 4c 28   vector <int> L(
1270: 4c 5f 2c 20 4c 5f 2b 73 69 7a 65 6f 66 28 4c 5f  L_, L_+sizeof(L_
1280: 29 2f 73 69 7a 65 6f 66 28 2a 4c 5f 29 29 3b 20  )/sizeof(*L_)); 
1290: 0d 0a 09 69 6e 74 20 66 6f 78 65 73 5f 5b 5d 20  ...int foxes_[] 
12a0: 3d 20 7b 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c 37  = {1,2,3,4,5,6,7
12b0: 2c 38 2c 39 2c 31 30 7d 3b 0d 0a 09 20 20 76 65  ,8,9,10};...  ve
12c0: 63 74 6f 72 20 3c 69 6e 74 3e 20 66 6f 78 65 73  ctor <int> foxes
12d0: 28 66 6f 78 65 73 5f 2c 20 66 6f 78 65 73 5f 2b  (foxes_, foxes_+
12e0: 73 69 7a 65 6f 66 28 66 6f 78 65 73 5f 29 2f 73  sizeof(foxes_)/s
12f0: 69 7a 65 6f 66 28 2a 66 6f 78 65 73 5f 29 29 3b  izeof(*foxes_));
1300: 20 0d 0a 09 69 6e 74 20 5f 20 3d 20 30 3b 20 0d   ...int _ = 0; .
1310: 0a 45 4e 44 0d 0a 43 41 53 45 28 34 29 0d 0a 09  .END..CASE(4)...
1320: 69 6e 74 20 41 5f 5b 5d 20 3d 20 7b 38 2c 31 35  int A_[] = {8,15
1330: 2c 32 32 2c 32 34 2c 32 2c 32 35 2c 31 33 2c 32  ,22,24,2,25,13,2
1340: 36 2c 31 38 2c 34 2c 39 2c 32 39 2c 31 2c 31 32  6,18,4,9,29,1,12
1350: 2c 33 2c 31 36 2c 31 34 2c 32 31 2c 31 39 2c 32  ,3,16,14,21,19,2
1360: 37 2c 31 37 2c 37 2c 32 30 2c 31 30 2c 33 30 2c  7,17,7,20,10,30,
1370: 31 31 2c 36 2c 35 2c 32 33 7d 3b 0d 0a 09 20 20  11,6,5,23};...  
1380: 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 41 28 41  vector <int> A(A
1390: 5f 2c 20 41 5f 2b 73 69 7a 65 6f 66 28 41 5f 29  _, A_+sizeof(A_)
13a0: 2f 73 69 7a 65 6f 66 28 2a 41 5f 29 29 3b 20 0d  /sizeof(*A_)); .
13b0: 0a 09 69 6e 74 20 42 5f 5b 5d 20 3d 20 7b 32 38  ..int B_[] = {28
13c0: 2c 32 38 2c 38 2c 38 2c 32 38 2c 32 38 2c 32 35  ,28,8,8,28,28,25
13d0: 2c 32 2c 31 33 2c 32 34 2c 32 34 2c 32 32 2c 32  ,2,13,24,24,22,2
13e0: 32 2c 32 39 2c 34 2c 32 32 2c 38 2c 34 2c 31 2c  2,29,4,22,8,4,1,
13f0: 32 34 2c 32 31 2c 31 34 2c 31 38 2c 31 36 2c 31  24,21,14,18,16,1
1400: 33 2c 32 31 2c 31 34 2c 31 2c 32 35 7d 3b 0d 0a  3,21,14,1,25};..
1410: 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20  .  vector <int> 
1420: 42 28 42 5f 2c 20 42 5f 2b 73 69 7a 65 6f 66 28  B(B_, B_+sizeof(
1430: 42 5f 29 2f 73 69 7a 65 6f 66 28 2a 42 5f 29 29  B_)/sizeof(*B_))
1440: 3b 20 0d 0a 09 69 6e 74 20 4c 5f 5b 5d 20 3d 20  ; ...int L_[] = 
1450: 7b 37 39 33 37 34 2c 34 30 36 32 39 2c 34 33 31  {79374,40629,431
1460: 39 35 2c 37 33 35 38 39 2c 32 34 32 30 30 2c 36  95,73589,24200,6
1470: 33 39 33 37 2c 33 35 33 33 39 2c 37 35 39 38 2c  3937,35339,7598,
1480: 36 35 31 30 39 2c 35 31 37 36 34 2c 31 31 31 34  65109,51764,1114
1490: 32 2c 38 34 30 31 37 2c 35 31 30 37 38 2c 35 38  2,84017,51078,58
14a0: 30 35 31 2c 38 31 33 38 37 2c 32 32 30 33 35 2c  051,81387,22035,
14b0: 33 34 38 38 33 2c 39 32 37 31 30 2c 35 32 32 38  34883,92710,5228
14c0: 33 2c 35 37 33 33 37 2c 37 39 33 30 39 2c 33 33  3,57337,79309,33
14d0: 38 33 2c 34 31 39 30 34 2c 33 35 38 33 39 2c 33  83,41904,35839,3
14e0: 38 32 34 32 2c 34 33 32 30 38 2c 38 32 30 36 32  8242,43208,82062
14f0: 2c 32 34 36 37 36 2c 37 31 38 33 38 7d 3b 0d 0a  ,24676,71838};..
1500: 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20  .  vector <int> 
1510: 4c 28 4c 5f 2c 20 4c 5f 2b 73 69 7a 65 6f 66 28  L(L_, L_+sizeof(
1520: 4c 5f 29 2f 73 69 7a 65 6f 66 28 2a 4c 5f 29 29  L_)/sizeof(*L_))
1530: 3b 20 0d 0a 09 69 6e 74 20 66 6f 78 65 73 5f 5b  ; ...int foxes_[
1540: 5d 20 3d 20 7b 33 2c 35 2c 37 2c 39 2c 31 30 2c  ] = {3,5,7,9,10,
1550: 31 34 2c 31 37 2c 31 39 2c 32 30 2c 32 31 2c 32  14,17,19,20,21,2
1560: 34 2c 32 35 2c 32 38 7d 3b 0d 0a 09 20 20 76 65  4,25,28};...  ve
1570: 63 74 6f 72 20 3c 69 6e 74 3e 20 66 6f 78 65 73  ctor <int> foxes
1580: 28 66 6f 78 65 73 5f 2c 20 66 6f 78 65 73 5f 2b  (foxes_, foxes_+
1590: 73 69 7a 65 6f 66 28 66 6f 78 65 73 5f 29 2f 73  sizeof(foxes_)/s
15a0: 69 7a 65 6f 66 28 2a 66 6f 78 65 73 5f 29 29 3b  izeof(*foxes_));
15b0: 20 0d 0a 09 69 6e 74 20 5f 20 3d 20 31 30 37 30   ...int _ = 1070
15c0: 31 33 3b 20 0d 0a 45 4e 44 0d 0a 43 41 53 45 28  13; ..END..CASE(
15d0: 35 29 0d 0a 09 69 6e 74 20 41 5f 5b 5d 20 3d 20  5)...int A_[] = 
15e0: 7b 33 34 2c 31 34 2c 32 32 2c 39 2c 32 34 2c 31  {34,14,22,9,24,1
15f0: 39 2c 31 31 2c 33 37 2c 33 33 2c 32 31 2c 35 2c  9,11,37,33,21,5,
1600: 33 30 2c 31 2c 34 33 2c 37 2c 33 31 2c 34 35 2c  30,1,43,7,31,45,
1610: 32 37 2c 36 2c 31 32 2c 31 33 2c 33 35 2c 32 33  27,6,12,13,35,23
1620: 2c 34 37 2c 34 39 2c 35 30 2c 32 36 2c 34 30 2c  ,47,49,50,26,40,
1630: 31 36 2c 31 30 2c 34 38 2c 32 35 2c 32 39 2c 31  16,10,48,25,29,1
1640: 35 2c 32 38 2c 34 36 2c 34 2c 32 30 2c 34 34 2c  5,28,46,4,20,44,
1650: 31 37 2c 33 39 2c 33 32 2c 33 38 2c 32 2c 34 32  17,39,32,38,2,42
1660: 2c 38 2c 33 36 2c 33 2c 34 31 7d 3b 0d 0a 09 20  ,8,36,3,41};... 
1670: 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e 20 41 28   vector <int> A(
1680: 41 5f 2c 20 41 5f 2b 73 69 7a 65 6f 66 28 41 5f  A_, A_+sizeof(A_
1690: 29 2f 73 69 7a 65 6f 66 28 2a 41 5f 29 29 3b 20  )/sizeof(*A_)); 
16a0: 0d 0a 09 69 6e 74 20 42 5f 5b 5d 20 3d 20 7b 31  ...int B_[] = {1
16b0: 38 2c 31 38 2c 31 38 2c 31 34 2c 39 2c 33 34 2c  8,18,18,14,9,34,
16c0: 39 2c 32 34 2c 33 34 2c 31 31 2c 31 38 2c 31 34  9,24,34,11,18,14
16d0: 2c 32 31 2c 32 31 2c 34 33 2c 31 2c 32 32 2c 37  ,21,21,43,1,22,7
16e0: 2c 31 2c 33 30 2c 31 34 2c 33 33 2c 31 33 2c 31  ,1,30,14,33,13,1
16f0: 38 2c 39 2c 35 2c 31 2c 31 2c 32 36 2c 31 39 2c  8,9,5,1,1,26,19,
1700: 35 30 2c 33 33 2c 35 30 2c 34 30 2c 32 39 2c 34  50,33,50,40,29,4
1710: 38 2c 35 30 2c 33 37 2c 31 36 2c 34 30 2c 34 38  8,50,37,16,40,48
1720: 2c 31 34 2c 33 30 2c 32 32 2c 34 37 2c 33 37 2c  ,14,30,22,47,37,
1730: 37 2c 35 30 2c 36 7d 3b 0d 0a 09 20 20 76 65 63  7,50,6};...  vec
1740: 74 6f 72 20 3c 69 6e 74 3e 20 42 28 42 5f 2c 20  tor <int> B(B_, 
1750: 42 5f 2b 73 69 7a 65 6f 66 28 42 5f 29 2f 73 69  B_+sizeof(B_)/si
1760: 7a 65 6f 66 28 2a 42 5f 29 29 3b 20 0d 0a 09 69  zeof(*B_)); ...i
1770: 6e 74 20 4c 5f 5b 5d 20 3d 20 7b 32 32 30 35 31  nt L_[] = {22051
1780: 2c 31 31 31 30 39 2c 38 35 32 37 35 2c 36 36 39  ,11109,85275,669
1790: 31 2c 34 33 37 30 35 2c 34 37 33 37 34 2c 32 37  1,43705,47374,27
17a0: 37 34 38 2c 35 34 31 31 2c 36 32 35 34 39 2c 38  748,5411,62549,8
17b0: 34 30 37 39 2c 38 39 35 34 32 2c 33 38 30 30 36  4079,89542,38006
17c0: 2c 38 32 31 39 38 2c 32 34 30 38 33 2c 31 36 38  ,82198,24083,168
17d0: 34 37 2c 36 36 33 33 35 2c 33 35 34 32 2c 37 32  47,66335,3542,72
17e0: 34 39 35 2c 33 37 33 37 38 2c 37 33 39 37 33 2c  495,37378,73973,
17f0: 38 35 37 30 33 2c 35 31 36 38 32 2c 36 38 36 38  85703,51682,6868
1800: 38 2c 39 34 32 39 35 2c 33 31 33 33 37 2c 0d 0a  8,94295,31337,..
1810: 39 30 30 37 31 2c 39 39 33 31 37 2c 36 33 34 38  90071,99317,6348
1820: 34 2c 34 33 32 34 34 2c 39 39 30 37 39 2c 35 35  4,43244,99079,55
1830: 38 35 37 2c 33 34 35 30 33 2c 37 39 37 30 39 2c  857,34503,79709,
1840: 38 32 31 34 30 2c 39 31 31 33 37 2c 32 37 30 33  82140,91137,2703
1850: 33 2c 39 31 35 39 39 2c 36 31 31 36 38 2c 35 32  3,91599,61168,52
1860: 33 34 35 2c 34 39 35 36 39 2c 35 38 39 31 39 2c  345,49569,58919,
1870: 33 38 31 33 33 2c 34 33 33 36 31 2c 0d 0a 34 30  38133,43361,..40
1880: 37 31 38 2c 32 31 31 35 2c 37 39 32 37 38 2c 38  718,2115,79278,8
1890: 38 38 34 31 2c 34 30 39 36 36 2c 34 32 30 32 33  8841,40966,42023
18a0: 7d 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69  };...  vector <i
18b0: 6e 74 3e 20 4c 28 4c 5f 2c 20 4c 5f 2b 73 69 7a  nt> L(L_, L_+siz
18c0: 65 6f 66 28 4c 5f 29 2f 73 69 7a 65 6f 66 28 2a  eof(L_)/sizeof(*
18d0: 4c 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 66 6f 78  L_)); ...int fox
18e0: 65 73 5f 5b 5d 20 3d 20 7b 35 2c 31 32 2c 31 33  es_[] = {5,12,13
18f0: 2c 31 38 2c 32 33 2c 32 37 2c 32 38 2c 32 39 2c  ,18,23,27,28,29,
1900: 33 32 2c 33 33 2c 33 34 2c 33 35 2c 33 36 2c 33  32,33,34,35,36,3
1910: 37 2c 34 30 2c 34 32 2c 34 33 2c 34 37 2c 34 38  7,40,42,43,47,48
1920: 2c 34 39 2c 35 30 7d 3b 0d 0a 09 20 20 76 65 63  ,49,50};...  vec
1930: 74 6f 72 20 3c 69 6e 74 3e 20 66 6f 78 65 73 28  tor <int> foxes(
1940: 66 6f 78 65 73 5f 2c 20 66 6f 78 65 73 5f 2b 73  foxes_, foxes_+s
1950: 69 7a 65 6f 66 28 66 6f 78 65 73 5f 29 2f 73 69  izeof(foxes_)/si
1960: 7a 65 6f 66 28 2a 66 6f 78 65 73 5f 29 29 3b 20  zeof(*foxes_)); 
1970: 0d 0a 09 69 6e 74 20 5f 20 3d 20 38 39 33 34 32  ...int _ = 89342
1980: 3b 20 0d 0a 45 4e 44 0d 0a 2f 2a 0d 0a 43 41 53  ; ..END../*..CAS
1990: 45 28 36 29 0d 0a 09 69 6e 74 20 41 5f 5b 5d 20  E(6)...int A_[] 
19a0: 3d 20 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c  = ;...  vector <
19b0: 69 6e 74 3e 20 41 28 41 5f 2c 20 41 5f 2b 73 69  int> A(A_, A_+si
19c0: 7a 65 6f 66 28 41 5f 29 2f 73 69 7a 65 6f 66 28  zeof(A_)/sizeof(
19d0: 2a 41 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 42 5f  *A_)); ...int B_
19e0: 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63 74 6f  [] = ;...  vecto
19f0: 72 20 3c 69 6e 74 3e 20 42 28 42 5f 2c 20 42 5f  r <int> B(B_, B_
1a00: 2b 73 69 7a 65 6f 66 28 42 5f 29 2f 73 69 7a 65  +sizeof(B_)/size
1a10: 6f 66 28 2a 42 5f 29 29 3b 20 0d 0a 09 69 6e 74  of(*B_)); ...int
1a20: 20 4c 5f 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65   L_[] = ;...  ve
1a30: 63 74 6f 72 20 3c 69 6e 74 3e 20 4c 28 4c 5f 2c  ctor <int> L(L_,
1a40: 20 4c 5f 2b 73 69 7a 65 6f 66 28 4c 5f 29 2f 73   L_+sizeof(L_)/s
1a50: 69 7a 65 6f 66 28 2a 4c 5f 29 29 3b 20 0d 0a 09  izeof(*L_)); ...
1a60: 69 6e 74 20 66 6f 78 65 73 5f 5b 5d 20 3d 20 3b  int foxes_[] = ;
1a70: 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74  ...  vector <int
1a80: 3e 20 66 6f 78 65 73 28 66 6f 78 65 73 5f 2c 20  > foxes(foxes_, 
1a90: 66 6f 78 65 73 5f 2b 73 69 7a 65 6f 66 28 66 6f  foxes_+sizeof(fo
1aa0: 78 65 73 5f 29 2f 73 69 7a 65 6f 66 28 2a 66 6f  xes_)/sizeof(*fo
1ab0: 78 65 73 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 5f  xes_)); ...int _
1ac0: 20 3d 20 3b 20 0d 0a 45 4e 44 0d 0a 43 41 53 45   = ; ..END..CASE
1ad0: 28 37 29 0d 0a 09 69 6e 74 20 41 5f 5b 5d 20 3d  (7)...int A_[] =
1ae0: 20 3b 0d 0a 09 20 20 76 65 63 74 6f 72 20 3c 69   ;...  vector <i
1af0: 6e 74 3e 20 41 28 41 5f 2c 20 41 5f 2b 73 69 7a  nt> A(A_, A_+siz
1b00: 65 6f 66 28 41 5f 29 2f 73 69 7a 65 6f 66 28 2a  eof(A_)/sizeof(*
1b10: 41 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 42 5f 5b  A_)); ...int B_[
1b20: 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63 74 6f 72  ] = ;...  vector
1b30: 20 3c 69 6e 74 3e 20 42 28 42 5f 2c 20 42 5f 2b   <int> B(B_, B_+
1b40: 73 69 7a 65 6f 66 28 42 5f 29 2f 73 69 7a 65 6f  sizeof(B_)/sizeo
1b50: 66 28 2a 42 5f 29 29 3b 20 0d 0a 09 69 6e 74 20  f(*B_)); ...int 
1b60: 4c 5f 5b 5d 20 3d 20 3b 0d 0a 09 20 20 76 65 63  L_[] = ;...  vec
1b70: 74 6f 72 20 3c 69 6e 74 3e 20 4c 28 4c 5f 2c 20  tor <int> L(L_, 
1b80: 4c 5f 2b 73 69 7a 65 6f 66 28 4c 5f 29 2f 73 69  L_+sizeof(L_)/si
1b90: 7a 65 6f 66 28 2a 4c 5f 29 29 3b 20 0d 0a 09 69  zeof(*L_)); ...i
1ba0: 6e 74 20 66 6f 78 65 73 5f 5b 5d 20 3d 20 3b 0d  nt foxes_[] = ;.
1bb0: 0a 09 20 20 76 65 63 74 6f 72 20 3c 69 6e 74 3e  ..  vector <int>
1bc0: 20 66 6f 78 65 73 28 66 6f 78 65 73 5f 2c 20 66   foxes(foxes_, f
1bd0: 6f 78 65 73 5f 2b 73 69 7a 65 6f 66 28 66 6f 78  oxes_+sizeof(fox
1be0: 65 73 5f 29 2f 73 69 7a 65 6f 66 28 2a 66 6f 78  es_)/sizeof(*fox
1bf0: 65 73 5f 29 29 3b 20 0d 0a 09 69 6e 74 20 5f 20  es_)); ...int _ 
1c00: 3d 20 3b 20 0d 0a 45 4e 44 0d 0a 2a 2f 0d 0a 7d  = ; ..END..*/..}
1c10: 0d 0a 2f 2f 20 45 4e 44 20 43 55 54 20 48 45 52  ..// END CUT HER
1c20: 45 0d 0a                                         E..