Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Arina;
- var
- s: string;
- n, i, k: integer;
- pref: array [1..150000] of integer;
- begin
- Assign(input, 'input.txt');
- Assign(output, 'output.txt');
- reset(input);
- rewrite(output);
- Readln(s);
- n := length(s);
- for i := 2 to n do
- begin
- if s[k + 1] = s[i + k] then
- k := 1;
- while (k > 0) and (s[i - 1] <> s[k + 1]) do
- begin
- if s[k + 1] = s[i + k] then begin
- pref[i] += 1;
- k+=1;
- end
- else
- k := pref[k - 1];
- end;
- if k > pref[i] then
- pref[i] := k;
- end;
- for i := 1 to n do
- Write(pref[i]);
- Close(input);
- Close(output);
- end.
Advertisement
Add Comment
Please, Sign In to add comment