Guest User

Untitled

a guest
Apr 20th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.01 KB | None | 0 0
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils;
  7.  
  8. type
  9.   TElem = record
  10.     letter: char;
  11.     next: array['a'..'z'] of longint;
  12.     cnt: longint;
  13.     terminal: boolean;
  14.   end;
  15. var
  16.   cnt, free, i, n: longint;
  17.   bor: array[1..5000000] of TElem;
  18.   st: string;
  19.  
  20. function cn_term(st: string): longint;
  21. var
  22.   cur: longint;
  23.   i: longint;
  24. begin
  25.   cur:= 1;
  26.   for i:= 1 to length(st) do begin
  27.     if bor[cur].next[st[i]] <> 0 then begin
  28.       cur:= bor[cur].next[st[i]];
  29.     end else begin
  30.       inc(free);
  31.       bor[cur].next[st[i]]:= free;
  32.       cur:= bor[cur].next[st[i]];
  33.     end;
  34.   end;
  35.  
  36.   bor[cur].terminal:= true;
  37.   inc(bor[cur].cnt);
  38.   result:= bor[cur].cnt;
  39.  
  40. end;
  41.  
  42. begin                             {
  43.   reset(input,'input.txt');
  44.   rewrite(output,'output.txt');  }
  45.  
  46.   readln(n);
  47.   free:= 0;
  48.   for i:= 1 to n do begin
  49.     readln(st);
  50.     cnt:= cn_term(st);
  51.     if cnt = 1 then writeln('OK') else begin
  52.       st:= st + inttostr(cnt);
  53.       writeln(st);
  54.     end;
  55.   end;
  56.  
  57. end.
Add Comment
Please, Sign In to add comment