program a; var t:ansistring; j,k:longint; next:array[0..100] of longint; procedure get_next; begin j:=1; k:=0; next[1]:=0; while j<length(t) do if (k=0) or (t[j]=t[k]) then begin j:=j+1; k:=k+1; next[j]:=k; end else k:=next[k]; end; begin readln(t); get_next; for j:=1 to length(t) do write(next[j],' '); end. /************************************************************** Problem: 2151 User: admin Language: Pascal Result: Wrong Answer ****************************************************************/