Hex Artifact Content
Not logged in

Artifact d1f9e48a4c45888d91dfaaa9c6809e2db2a66b91:


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 63 6f 6d 70  ..#include <comp
00d0: 6c 65 78 3e 0d 0a 23 69 6e 63 6c 75 64 65 20 3c  lex>..#include <
00e0: 71 75 65 75 65 3e 0d 0a 23 69 6e 63 6c 75 64 65  queue>..#include
00f0: 20 3c 73 74 61 63 6b 3e 0d 0a 23 69 6e 63 6c 75   <stack>..#inclu
0100: 64 65 20 3c 63 6d 61 74 68 3e 0d 0a 75 73 69 6e  de <cmath>..usin
0110: 67 20 6e 61 6d 65 73 70 61 63 65 20 73 74 64 3b  g namespace std;
0120: 0d 0a 74 79 70 65 64 65 66 20 6c 6f 6e 67 20 6c  ..typedef long l
0130: 6f 6e 67 20 4c 4c 3b 0d 0a 0d 0a 69 6e 74 20 67  ong LL;....int g
0140: 65 74 5f 61 6e 64 5f 67 6f 28 20 63 6f 6e 73 74  et_and_go( const
0150: 20 73 74 72 69 6e 67 26 20 61 2c 20 69 6e 74 26   string& a, int&
0160: 20 69 20 29 0d 0a 7b 0d 0a 09 69 6e 74 20 64 69   i )..{...int di
0170: 63 74 5b 5d 20 3d 0d 0a 09 09 7b 27 61 27 2c 27  ct[] =....{'a','
0180: 62 27 2c 27 6b 27 2c 27 64 27 2c 27 65 27 2c 27  b','k','d','e','
0190: 67 27 2c 27 68 27 2c 27 69 27 2c 27 6c 27 2c 27  g','h','i','l','
01a0: 6d 27 2c 27 6e 27 2c 27 6e 27 2f 2a 67 2a 2f 2c  m','n','n'/*g*/,
01b0: 27 6f 27 2c 27 70 27 2c 27 72 27 2c 27 73 27 2c  'o','p','r','s',
01c0: 27 74 27 2c 27 75 27 2c 27 77 27 2c 27 79 27 7d  't','u','w','y'}
01d0: 3b 0d 0a 09 66 6f 72 28 69 6e 74 20 6b 3d 30 3b  ;...for(int k=0;
01e0: 3b 20 2b 2b 6b 29 0d 0a 09 09 69 66 28 20 64 69  ; ++k)....if( di
01f0: 63 74 5b 6b 5d 20 3d 3d 20 61 5b 69 5d 20 29 0d  ct[k] == a[i] ).
0200: 0a 09 09 09 69 66 28 20 61 5b 69 5d 3d 3d 27 6e  ....if( a[i]=='n
0210: 27 20 26 26 20 69 2b 31 3c 61 2e 73 69 7a 65 28  ' && i+1<a.size(
0220: 29 20 26 26 20 61 5b 69 2b 31 5d 3d 3d 27 67 27  ) && a[i+1]=='g'
0230: 20 29 0d 0a 09 09 09 09 7b 69 2b 3d 32 3b 20 72   )......{i+=2; r
0240: 65 74 75 72 6e 20 6b 2b 31 3b 7d 0d 0a 09 09 09  eturn k+1;}.....
0250: 65 6c 73 65 0d 0a 09 09 09 09 7b 69 2b 2b 3b 20  else......{i++; 
0260: 20 72 65 74 75 72 6e 20 6b 3b 7d 0d 0a 7d 0d 0a   return k;}..}..
0270: 0d 0a 62 6f 6f 6c 20 74 67 63 6d 70 28 20 63 6f  ..bool tgcmp( co
0280: 6e 73 74 20 73 74 72 69 6e 67 26 20 61 2c 20 63  nst string& a, c
0290: 6f 6e 73 74 20 73 74 72 69 6e 67 26 20 62 20 29  onst string& b )
02a0: 0d 0a 7b 0d 0a 09 69 6e 74 20 69 3d 30 2c 20 6a  ..{...int i=0, j
02b0: 3d 30 3b 0d 0a 09 66 6f 72 28 3b 3b 29 0d 0a 09  =0;...for(;;)...
02c0: 7b 0d 0a 09 09 69 66 28 20 69 3d 3d 61 2e 73 69  {....if( i==a.si
02d0: 7a 65 28 29 20 26 26 20 6a 3d 3d 62 2e 73 69 7a  ze() && j==b.siz
02e0: 65 28 29 20 29 0d 0a 09 09 09 72 65 74 75 72 6e  e() ).....return
02f0: 20 66 61 6c 73 65 3b 0d 0a 09 09 69 66 28 20 69   false;....if( i
0300: 3d 3d 61 2e 73 69 7a 65 28 29 20 29 0d 0a 09 09  ==a.size() )....
0310: 09 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 09  .return true;...
0320: 09 69 66 28 20 6a 3d 3d 62 2e 73 69 7a 65 28 29  .if( j==b.size()
0330: 20 29 0d 0a 09 09 09 72 65 74 75 72 6e 20 66 61   ).....return fa
0340: 6c 73 65 3b 0d 0a 0d 0a 09 09 69 6e 74 20 61 69  lse;......int ai
0350: 20 3d 20 67 65 74 5f 61 6e 64 5f 67 6f 28 61 2c   = get_and_go(a,
0360: 20 69 29 3b 0d 0a 09 09 69 6e 74 20 62 6a 20 3d   i);....int bj =
0370: 20 67 65 74 5f 61 6e 64 5f 67 6f 28 62 2c 20 6a   get_and_go(b, j
0380: 29 3b 0d 0a 09 09 69 66 28 20 61 69 20 21 3d 20  );....if( ai != 
0390: 62 6a 20 29 0d 0a 09 09 09 72 65 74 75 72 6e 20  bj ).....return 
03a0: 61 69 20 3c 20 62 6a 3b 0d 0a 09 7d 0d 0a 7d 0d  ai < bj;...}..}.
03b0: 0a 0d 0a 63 6c 61 73 73 20 54 61 67 61 6c 6f 67  ...class Tagalog
03c0: 44 69 63 74 69 6f 6e 61 72 79 0d 0a 7b 0d 0a 70  Dictionary..{..p
03d0: 75 62 6c 69 63 3a 0d 0a 09 76 65 63 74 6f 72 20  ublic:...vector 
03e0: 3c 73 74 72 69 6e 67 3e 20 73 6f 72 74 57 6f 72  <string> sortWor
03f0: 64 73 28 76 65 63 74 6f 72 20 3c 73 74 72 69 6e  ds(vector <strin
0400: 67 3e 20 77 6f 72 64 73 29 20 0d 0a 09 7b 0d 0a  g> words) ...{..
0410: 09 09 73 6f 72 74 28 20 77 6f 72 64 73 2e 62 65  ..sort( words.be
0420: 67 69 6e 28 29 2c 20 77 6f 72 64 73 2e 65 6e 64  gin(), words.end
0430: 28 29 2c 20 26 74 67 63 6d 70 20 29 3b 0d 0a 09  (), &tgcmp );...
0440: 09 72 65 74 75 72 6e 20 77 6f 72 64 73 3b 0d 0a  .return words;..
0450: 09 7d 0d 0a 0d 0a 2f 2f 20 42 45 47 49 4e 20 43  .}....// BEGIN C
0460: 55 54 20 48 45 52 45 0d 0a 09 70 75 62 6c 69 63  UT HERE...public
0470: 3a 0d 0a 09 76 6f 69 64 20 72 75 6e 5f 74 65 73  :...void run_tes
0480: 74 28 69 6e 74 20 43 61 73 65 29 20 7b 20 69 66  t(int Case) { if
0490: 20 28 28 43 61 73 65 20 3d 3d 20 2d 31 29 20 7c   ((Case == -1) |
04a0: 7c 20 28 43 61 73 65 20 3d 3d 20 30 29 29 20 74  | (Case == 0)) t
04b0: 65 73 74 5f 63 61 73 65 5f 30 28 29 3b 20 69 66  est_case_0(); if
04c0: 20 28 28 43 61 73 65 20 3d 3d 20 2d 31 29 20 7c   ((Case == -1) |
04d0: 7c 20 28 43 61 73 65 20 3d 3d 20 31 29 29 20 74  | (Case == 1)) t
04e0: 65 73 74 5f 63 61 73 65 5f 31 28 29 3b 20 69 66  est_case_1(); if
04f0: 20 28 28 43 61 73 65 20 3d 3d 20 2d 31 29 20 7c   ((Case == -1) |
0500: 7c 20 28 43 61 73 65 20 3d 3d 20 32 29 29 20 74  | (Case == 2)) t
0510: 65 73 74 5f 63 61 73 65 5f 32 28 29 3b 20 69 66  est_case_2(); if
0520: 20 28 28 43 61 73 65 20 3d 3d 20 2d 31 29 20 7c   ((Case == -1) |
0530: 7c 20 28 43 61 73 65 20 3d 3d 20 33 29 29 20 74  | (Case == 3)) t
0540: 65 73 74 5f 63 61 73 65 5f 33 28 29 3b 20 69 66  est_case_3(); if
0550: 20 28 28 43 61 73 65 20 3d 3d 20 2d 31 29 20 7c   ((Case == -1) |
0560: 7c 20 28 43 61 73 65 20 3d 3d 20 34 29 29 20 74  | (Case == 4)) t
0570: 65 73 74 5f 63 61 73 65 5f 34 28 29 3b 20 69 66  est_case_4(); if
0580: 20 28 28 43 61 73 65 20 3d 3d 20 2d 31 29 20 7c   ((Case == -1) |
0590: 7c 20 28 43 61 73 65 20 3d 3d 20 35 29 29 20 74  | (Case == 5)) t
05a0: 65 73 74 5f 63 61 73 65 5f 35 28 29 3b 20 7d 0d  est_case_5(); }.
05b0: 0a 09 70 72 69 76 61 74 65 3a 0d 0a 09 74 65 6d  ..private:...tem
05c0: 70 6c 61 74 65 20 3c 74 79 70 65 6e 61 6d 65 20  plate <typename 
05d0: 54 3e 20 73 74 72 69 6e 67 20 70 72 69 6e 74 5f  T> string print_
05e0: 61 72 72 61 79 28 63 6f 6e 73 74 20 76 65 63 74  array(const vect
05f0: 6f 72 3c 54 3e 20 26 56 29 20 7b 20 6f 73 74 72  or<T> &V) { ostr
0600: 69 6e 67 73 74 72 65 61 6d 20 6f 73 3b 20 6f 73  ingstream os; os
0610: 20 3c 3c 20 22 7b 20 22 3b 20 66 6f 72 20 28 74   << "{ "; for (t
0620: 79 70 65 6e 61 6d 65 20 76 65 63 74 6f 72 3c 54  ypename vector<T
0630: 3e 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f  >::const_iterato
0640: 72 20 69 74 65 72 20 3d 20 56 2e 62 65 67 69 6e  r iter = V.begin
0650: 28 29 3b 20 69 74 65 72 20 21 3d 20 56 2e 65 6e  (); iter != V.en
0660: 64 28 29 3b 20 2b 2b 69 74 65 72 29 20 6f 73 20  d(); ++iter) os 
0670: 3c 3c 20 27 5c 22 27 20 3c 3c 20 2a 69 74 65 72  << '\"' << *iter
0680: 20 3c 3c 20 22 5c 22 2c 22 3b 20 6f 73 20 3c 3c   << "\","; os <<
0690: 20 22 20 7d 22 3b 20 72 65 74 75 72 6e 20 6f 73   " }"; return os
06a0: 2e 73 74 72 28 29 3b 20 7d 0d 0a 09 76 6f 69 64  .str(); }...void
06b0: 20 76 65 72 69 66 79 5f 63 61 73 65 28 69 6e 74   verify_case(int
06c0: 20 43 61 73 65 2c 20 63 6f 6e 73 74 20 76 65 63   Case, const vec
06d0: 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20 26 45 78  tor <string> &Ex
06e0: 70 65 63 74 65 64 2c 20 63 6f 6e 73 74 20 76 65  pected, const ve
06f0: 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20 26 52  ctor <string> &R
0700: 65 63 65 69 76 65 64 29 20 7b 20 63 65 72 72 20  eceived) { cerr 
0710: 3c 3c 20 22 54 65 73 74 20 43 61 73 65 20 23 22  << "Test Case #"
0720: 20 3c 3c 20 43 61 73 65 20 3c 3c 20 22 2e 2e 2e   << Case << "...
0730: 22 3b 20 69 66 20 28 45 78 70 65 63 74 65 64 20  "; if (Expected 
0740: 3d 3d 20 52 65 63 65 69 76 65 64 29 20 63 65 72  == Received) cer
0750: 72 20 3c 3c 20 22 50 41 53 53 45 44 22 20 3c 3c  r << "PASSED" <<
0760: 20 65 6e 64 6c 3b 20 65 6c 73 65 20 7b 20 63 65   endl; else { ce
0770: 72 72 20 3c 3c 20 22 46 41 49 4c 45 44 22 20 3c  rr << "FAILED" <
0780: 3c 20 65 6e 64 6c 3b 20 63 65 72 72 20 3c 3c 20  < endl; cerr << 
0790: 22 5c 74 45 78 70 65 63 74 65 64 3a 20 22 20 3c  "\tExpected: " <
07a0: 3c 20 70 72 69 6e 74 5f 61 72 72 61 79 28 45 78  < print_array(Ex
07b0: 70 65 63 74 65 64 29 20 3c 3c 20 65 6e 64 6c 3b  pected) << endl;
07c0: 20 63 65 72 72 20 3c 3c 20 22 5c 74 52 65 63 65   cerr << "\tRece
07d0: 69 76 65 64 3a 20 22 20 3c 3c 20 70 72 69 6e 74  ived: " << print
07e0: 5f 61 72 72 61 79 28 52 65 63 65 69 76 65 64 29  _array(Received)
07f0: 20 3c 3c 20 65 6e 64 6c 3b 20 7d 20 7d 0d 0a 09   << endl; } }...
0800: 76 6f 69 64 20 74 65 73 74 5f 63 61 73 65 5f 30  void test_case_0
0810: 28 29 20 7b 20 73 74 72 69 6e 67 20 41 72 72 30  () { string Arr0
0820: 5b 5d 20 3d 20 7b 22 61 62 61 6b 61 64 61 22 2c  [] = {"abakada",
0830: 22 61 6c 70 61 62 65 74 22 2c 22 74 61 67 61 6c  "alpabet","tagal
0840: 6f 67 22 2c 22 61 6b 6f 22 7d 3b 20 76 65 63 74  og","ako"}; vect
0850: 6f 72 20 3c 73 74 72 69 6e 67 3e 20 41 72 67 30  or <string> Arg0
0860: 28 41 72 72 30 2c 20 41 72 72 30 20 2b 20 28 73  (Arr0, Arr0 + (s
0870: 69 7a 65 6f 66 28 41 72 72 30 29 20 2f 20 73 69  izeof(Arr0) / si
0880: 7a 65 6f 66 28 41 72 72 30 5b 30 5d 29 29 29 3b  zeof(Arr0[0])));
0890: 20 73 74 72 69 6e 67 20 41 72 72 31 5b 5d 20 3d   string Arr1[] =
08a0: 20 7b 22 61 62 61 6b 61 64 61 22 2c 20 22 61 6b   {"abakada", "ak
08b0: 6f 22 2c 20 22 61 6c 70 61 62 65 74 22 2c 20 22  o", "alpabet", "
08c0: 74 61 67 61 6c 6f 67 22 20 7d 3b 20 76 65 63 74  tagalog" }; vect
08d0: 6f 72 20 3c 73 74 72 69 6e 67 3e 20 41 72 67 31  or <string> Arg1
08e0: 28 41 72 72 31 2c 20 41 72 72 31 20 2b 20 28 73  (Arr1, Arr1 + (s
08f0: 69 7a 65 6f 66 28 41 72 72 31 29 20 2f 20 73 69  izeof(Arr1) / si
0900: 7a 65 6f 66 28 41 72 72 31 5b 30 5d 29 29 29 3b  zeof(Arr1[0])));
0910: 20 76 65 72 69 66 79 5f 63 61 73 65 28 30 2c 20   verify_case(0, 
0920: 41 72 67 31 2c 20 73 6f 72 74 57 6f 72 64 73 28  Arg1, sortWords(
0930: 41 72 67 30 29 29 3b 20 7d 0d 0a 09 76 6f 69 64  Arg0)); }...void
0940: 20 74 65 73 74 5f 63 61 73 65 5f 31 28 29 20 7b   test_case_1() {
0950: 20 73 74 72 69 6e 67 20 41 72 72 30 5b 5d 20 3d   string Arr0[] =
0960: 20 7b 22 61 6e 67 22 2c 22 61 6e 6f 22 2c 22 61   {"ang","ano","a
0970: 6e 69 6d 22 2c 22 61 6c 61 6b 22 2c 22 61 6c 61  nim","alak","ala
0980: 6d 22 2c 22 61 6c 61 62 22 7d 3b 20 76 65 63 74  m","alab"}; vect
0990: 6f 72 20 3c 73 74 72 69 6e 67 3e 20 41 72 67 30  or <string> Arg0
09a0: 28 41 72 72 30 2c 20 41 72 72 30 20 2b 20 28 73  (Arr0, Arr0 + (s
09b0: 69 7a 65 6f 66 28 41 72 72 30 29 20 2f 20 73 69  izeof(Arr0) / si
09c0: 7a 65 6f 66 28 41 72 72 30 5b 30 5d 29 29 29 3b  zeof(Arr0[0])));
09d0: 20 73 74 72 69 6e 67 20 41 72 72 31 5b 5d 20 3d   string Arr1[] =
09e0: 20 7b 22 61 6c 61 62 22 2c 20 22 61 6c 61 6b 22   {"alab", "alak"
09f0: 2c 20 22 61 6c 61 6d 22 2c 20 22 61 6e 69 6d 22  , "alam", "anim"
0a00: 2c 20 22 61 6e 6f 22 2c 20 22 61 6e 67 22 20 7d  , "ano", "ang" }
0a10: 3b 20 76 65 63 74 6f 72 20 3c 73 74 72 69 6e 67  ; vector <string
0a20: 3e 20 41 72 67 31 28 41 72 72 31 2c 20 41 72 72  > Arg1(Arr1, Arr
0a30: 31 20 2b 20 28 73 69 7a 65 6f 66 28 41 72 72 31  1 + (sizeof(Arr1
0a40: 29 20 2f 20 73 69 7a 65 6f 66 28 41 72 72 31 5b  ) / sizeof(Arr1[
0a50: 30 5d 29 29 29 3b 20 76 65 72 69 66 79 5f 63 61  0]))); verify_ca
0a60: 73 65 28 31 2c 20 41 72 67 31 2c 20 73 6f 72 74  se(1, Arg1, sort
0a70: 57 6f 72 64 73 28 41 72 67 30 29 29 3b 20 7d 0d  Words(Arg0)); }.
0a80: 0a 09 76 6f 69 64 20 74 65 73 74 5f 63 61 73 65  ..void test_case
0a90: 5f 32 28 29 20 7b 20 73 74 72 69 6e 67 20 41 72  _2() { string Ar
0aa0: 72 30 5b 5d 20 3d 20 7b 22 73 69 79 61 22 2c 22  r0[] = {"siya","
0ab0: 6e 69 79 61 22 2c 22 6b 61 6e 69 79 61 22 2c 22  niya","kaniya","
0ac0: 69 6b 61 77 22 2c 22 69 74 6f 22 2c 22 69 79 6f  ikaw","ito","iyo
0ad0: 6e 22 7d 3b 20 76 65 63 74 6f 72 20 3c 73 74 72  n"}; vector <str
0ae0: 69 6e 67 3e 20 41 72 67 30 28 41 72 72 30 2c 20  ing> Arg0(Arr0, 
0af0: 41 72 72 30 20 2b 20 28 73 69 7a 65 6f 66 28 41  Arr0 + (sizeof(A
0b00: 72 72 30 29 20 2f 20 73 69 7a 65 6f 66 28 41 72  rr0) / sizeof(Ar
0b10: 72 30 5b 30 5d 29 29 29 3b 20 73 74 72 69 6e 67  r0[0]))); string
0b20: 20 41 72 72 31 5b 5d 20 3d 20 7b 22 6b 61 6e 69   Arr1[] = {"kani
0b30: 79 61 22 2c 20 22 69 6b 61 77 22 2c 20 22 69 74  ya", "ikaw", "it
0b40: 6f 22 2c 20 22 69 79 6f 6e 22 2c 20 22 6e 69 79  o", "iyon", "niy
0b50: 61 22 2c 20 22 73 69 79 61 22 20 7d 3b 20 76 65  a", "siya" }; ve
0b60: 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20 41 72  ctor <string> Ar
0b70: 67 31 28 41 72 72 31 2c 20 41 72 72 31 20 2b 20  g1(Arr1, Arr1 + 
0b80: 28 73 69 7a 65 6f 66 28 41 72 72 31 29 20 2f 20  (sizeof(Arr1) / 
0b90: 73 69 7a 65 6f 66 28 41 72 72 31 5b 30 5d 29 29  sizeof(Arr1[0]))
0ba0: 29 3b 20 76 65 72 69 66 79 5f 63 61 73 65 28 32  ); verify_case(2
0bb0: 2c 20 41 72 67 31 2c 20 73 6f 72 74 57 6f 72 64  , Arg1, sortWord
0bc0: 73 28 41 72 67 30 29 29 3b 20 7d 0d 0a 09 76 6f  s(Arg0)); }...vo
0bd0: 69 64 20 74 65 73 74 5f 63 61 73 65 5f 33 28 29  id test_case_3()
0be0: 20 7b 20 73 74 72 69 6e 67 20 41 72 72 30 5b 5d   { string Arr0[]
0bf0: 20 3d 20 7b 22 6b 61 62 61 22 2c 22 62 61 6b 61   = {"kaba","baka
0c00: 22 2c 22 6e 61 62 61 22 2c 22 6e 67 69 70 69 6e  ","naba","ngipin
0c10: 22 2c 22 6e 69 70 69 6e 22 7d 3b 20 76 65 63 74  ","nipin"}; vect
0c20: 6f 72 20 3c 73 74 72 69 6e 67 3e 20 41 72 67 30  or <string> Arg0
0c30: 28 41 72 72 30 2c 20 41 72 72 30 20 2b 20 28 73  (Arr0, Arr0 + (s
0c40: 69 7a 65 6f 66 28 41 72 72 30 29 20 2f 20 73 69  izeof(Arr0) / si
0c50: 7a 65 6f 66 28 41 72 72 30 5b 30 5d 29 29 29 3b  zeof(Arr0[0])));
0c60: 20 73 74 72 69 6e 67 20 41 72 72 31 5b 5d 20 3d   string Arr1[] =
0c70: 20 7b 22 62 61 6b 61 22 2c 20 22 6b 61 62 61 22   {"baka", "kaba"
0c80: 2c 20 22 6e 61 62 61 22 2c 20 22 6e 69 70 69 6e  , "naba", "nipin
0c90: 22 2c 20 22 6e 67 69 70 69 6e 22 20 7d 3b 20 76  ", "ngipin" }; v
0ca0: 65 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20 41  ector <string> A
0cb0: 72 67 31 28 41 72 72 31 2c 20 41 72 72 31 20 2b  rg1(Arr1, Arr1 +
0cc0: 20 28 73 69 7a 65 6f 66 28 41 72 72 31 29 20 2f   (sizeof(Arr1) /
0cd0: 20 73 69 7a 65 6f 66 28 41 72 72 31 5b 30 5d 29   sizeof(Arr1[0])
0ce0: 29 29 3b 20 76 65 72 69 66 79 5f 63 61 73 65 28  )); verify_case(
0cf0: 33 2c 20 41 72 67 31 2c 20 73 6f 72 74 57 6f 72  3, Arg1, sortWor
0d00: 64 73 28 41 72 67 30 29 29 3b 20 7d 0d 0a 09 76  ds(Arg0)); }...v
0d10: 6f 69 64 20 74 65 73 74 5f 63 61 73 65 5f 34 28  oid test_case_4(
0d20: 29 20 7b 20 73 74 72 69 6e 67 20 41 72 72 30 5b  ) { string Arr0[
0d30: 5d 20 3d 20 7b 22 6b 6e 69 6c 6e 67 69 67 67 6e  ] = {"knilngiggn
0d40: 6e 67 67 69 6e 67 67 6e 22 2c 22 69 6e 67 6b 69  ngginggn","ingki
0d50: 67 6e 69 6e 67 67 22 2c 22 6b 69 6e 67 6b 6f 6e  gningg","kingkon
0d60: 67 22 2c 22 64 69 6e 67 64 6f 6e 67 22 2c 22 64  g","dingdong","d
0d70: 69 6e 64 6f 6e 67 22 2c 22 64 69 6e 67 64 6f 6e  indong","dingdon
0d80: 74 22 2c 22 69 6e 67 6b 62 6c 6f 74 22 7d 3b 20  t","ingkblot"}; 
0d90: 76 65 63 74 6f 72 20 3c 73 74 72 69 6e 67 3e 20  vector <string> 
0da0: 41 72 67 30 28 41 72 72 30 2c 20 41 72 72 30 20  Arg0(Arr0, Arr0 
0db0: 2b 20 28 73 69 7a 65 6f 66 28 41 72 72 30 29 20  + (sizeof(Arr0) 
0dc0: 2f 20 73 69 7a 65 6f 66 28 41 72 72 30 5b 30 5d  / sizeof(Arr0[0]
0dd0: 29 29 29 3b 20 73 74 72 69 6e 67 20 41 72 72 31  ))); string Arr1
0de0: 5b 5d 20 3d 20 7b 22 6b 69 6e 67 6b 6f 6e 67 22  [] = {"kingkong"
0df0: 2c 20 22 6b 6e 69 6c 6e 67 69 67 67 6e 6e 67 67  , "knilngiggnngg
0e00: 69 6e 67 67 6e 22 2c 20 22 64 69 6e 64 6f 6e 67  inggn", "dindong
0e10: 22 2c 20 22 64 69 6e 67 64 6f 6e 74 22 2c 20 22  ", "dingdont", "
0e20: 64 69 6e 67 64 6f 6e 67 22 2c 20 22 69 6e 67 6b  dingdong", "ingk
0e30: 62 6c 6f 74 22 2c 20 22 69 6e 67 6b 69 67 6e 69  blot", "ingkigni
0e40: 6e 67 67 22 20 7d 3b 20 76 65 63 74 6f 72 20 3c  ngg" }; vector <
0e50: 73 74 72 69 6e 67 3e 20 41 72 67 31 28 41 72 72  string> Arg1(Arr
0e60: 31 2c 20 41 72 72 31 20 2b 20 28 73 69 7a 65 6f  1, Arr1 + (sizeo
0e70: 66 28 41 72 72 31 29 20 2f 20 73 69 7a 65 6f 66  f(Arr1) / sizeof
0e80: 28 41 72 72 31 5b 30 5d 29 29 29 3b 20 76 65 72  (Arr1[0]))); ver
0e90: 69 66 79 5f 63 61 73 65 28 34 2c 20 41 72 67 31  ify_case(4, Arg1
0ea0: 2c 20 73 6f 72 74 57 6f 72 64 73 28 41 72 67 30  , sortWords(Arg0
0eb0: 29 29 3b 20 7d 0d 0a 09 76 6f 69 64 20 74 65 73  )); }...void tes
0ec0: 74 5f 63 61 73 65 5f 35 28 29 20 7b 20 73 74 72  t_case_5() { str
0ed0: 69 6e 67 20 41 72 72 30 5b 5d 20 3d 20 7b 22 73  ing Arr0[] = {"s
0ee0: 69 6c 61 6e 67 61 6e 67 22 2c 20 22 62 61 6b 61  ilangang", "baka
0ef0: 22 2c 20 22 62 61 64 61 22 2c 20 22 73 69 6c 61  ", "bada", "sila
0f00: 6e 67 22 7d 3b 20 76 65 63 74 6f 72 20 3c 73 74  ng"}; vector <st
0f10: 72 69 6e 67 3e 20 41 72 67 30 28 41 72 72 30 2c  ring> Arg0(Arr0,
0f20: 20 41 72 72 30 20 2b 20 28 73 69 7a 65 6f 66 28   Arr0 + (sizeof(
0f30: 41 72 72 30 29 20 2f 20 73 69 7a 65 6f 66 28 41  Arr0) / sizeof(A
0f40: 72 72 30 5b 30 5d 29 29 29 3b 20 73 74 72 69 6e  rr0[0]))); strin
0f50: 67 20 41 72 72 31 5b 5d 20 3d 20 7b 22 62 61 6b  g Arr1[] = {"bak
0f60: 61 22 2c 20 22 62 61 64 61 22 2c 20 22 73 69 6c  a", "bada", "sil
0f70: 61 6e 67 22 2c 20 22 73 69 6c 61 6e 67 61 6e 67  ang", "silangang
0f80: 22 20 7d 3b 20 76 65 63 74 6f 72 20 3c 73 74 72  " }; vector <str
0f90: 69 6e 67 3e 20 41 72 67 31 28 41 72 72 31 2c 20  ing> Arg1(Arr1, 
0fa0: 41 72 72 31 20 2b 20 28 73 69 7a 65 6f 66 28 41  Arr1 + (sizeof(A
0fb0: 72 72 31 29 20 2f 20 73 69 7a 65 6f 66 28 41 72  rr1) / sizeof(Ar
0fc0: 72 31 5b 30 5d 29 29 29 3b 20 76 65 72 69 66 79  r1[0]))); verify
0fd0: 5f 63 61 73 65 28 35 2c 20 41 72 67 31 2c 20 73  _case(5, Arg1, s
0fe0: 6f 72 74 57 6f 72 64 73 28 41 72 67 30 29 29 3b  ortWords(Arg0));
0ff0: 20 7d 0d 0a 0d 0a 2f 2f 20 45 4e 44 20 43 55 54   }....// END CUT
1000: 20 48 45 52 45 0d 0a 7d 3b 0d 0a 2f 2f 20 42 45   HERE..};..// BE
1010: 47 49 4e 20 43 55 54 20 48 45 52 45 20 0d 0a 69  GIN CUT HERE ..i
1020: 6e 74 20 6d 61 69 6e 28 29 20 7b 0d 0a 09 54 61  nt main() {...Ta
1030: 67 61 6c 6f 67 44 69 63 74 69 6f 6e 61 72 79 28  galogDictionary(
1040: 29 2e 72 75 6e 5f 74 65 73 74 28 2d 31 29 3b 0d  ).run_test(-1);.
1050: 0a 7d 0d 0a 2f 2f 20 45 4e 44 20 43 55 54 20 48  .}..// END CUT H
1060: 45 52 45 0d 0a                                   ERE..