ArinaRaguzina

Untitled

Oct 8th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. program Arina;
  2.  
  3. var
  4. s: string;
  5. n, i, k: integer;
  6. pref: array [1..150000] of integer;
  7. begin
  8. Assign(input, 'input.txt');
  9. Assign(output, 'output.txt');
  10. reset(input);
  11. rewrite(output);
  12. Readln(s);
  13. n := length(s);
  14. for i := 2 to n do
  15. begin
  16. if s[k + 1] = s[i + k] then
  17. k := 1;
  18. while (k > 0) and (s[i - 1] <> s[k + 1]) do
  19. begin
  20. if s[k + 1] = s[i + k] then begin
  21. pref[i] += 1;
  22. k+=1;
  23. end
  24. else
  25. k := pref[k - 1];
  26. end;
  27. if k > pref[i] then
  28. pref[i] := k;
  29. end;
  30. for i := 1 to n do
  31. Write(pref[i]);
  32. Close(input);
  33. Close(output);
  34. end.
Advertisement
Add Comment
Please, Sign In to add comment