Advertisement
ed_edwardaj

TOKI PROBLEM C - CHAP 12

Dec 27th, 2017
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.88 KB | None | 0 0
  1. var
  2.     A,C,D: Array[1..100000] of string;
  3.     spasi : string;
  4.     N , Q , i , hasil,kiri,kanan,tengah: longint;
  5. begin
  6.     readln (N,Q);
  7.     spasi := ' ' ;
  8.     for i := 1 to N do begin
  9.         readln (A[i]);
  10.         D[i] := copy  (A[i], (pos (spasi,A[i]) + 1), 6); // separating string
  11.         delete ( A[i] , pos ( spasi , A[i] ) , 7);
  12.     end;
  13.    
  14.     for i := 1 to Q do begin
  15.         readln (C[i]);
  16.     end;
  17.     // Binary Search begins
  18.     for i := 1 to Q do begin
  19.         kiri := 1;
  20.         kanan := N ;
  21.         hasil := 0 ;
  22.         while ( kiri <= kanan ) and ( hasil = 0 ) do begin
  23.             tengah := ( kiri  + kanan ) div 2;
  24.             if ( C[i] < A[tengah] ) then begin
  25.                 kanan := tengah - 1;
  26.             end else if ( C[i] > A[tengah] ) then begin
  27.                 kiri := tengah + 1;
  28.             end else begin
  29.                 hasil := tengah;
  30.             end;
  31.         end;
  32.     // Binary Search ends
  33.         if ( hasil = 0 ) then begin
  34.             writeln ('NIHIL');
  35.         end else begin
  36.             writeln (D[tengah]);
  37.         end;
  38.     end;
  39. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement