Pagini recente » Cod sursa (job #566042) | Cod sursa (job #1555959) | Cod sursa (job #2479276) | Cod sursa (job #238357) | Cod sursa (job #178606)
Cod sursa(job #178606)
var v:array[0..1000100]of char;
pi:array[0..1000100]of longint;
n,i,j,l,m,k,r:longint;
f1,f2:text;
begin
assign(f1,'prefix.in');
reset(f1);
readln(f1,m);
assign(f2,'prefix.out');
rewrite(f2);
for l:=1 to m do
begin
r:=0;
n:=0;
while not eoln(f1)do
begin
n:=n+1;
read(f1,v[n]);
end;
readln(f1);
pi[1]:=0;
k:=0;
for i:=2 to n do
begin
while(k>0)and(v[k+1]<>v[i])do
k:=pi[k];
if v[k+1]=v[i] then inc(k);
pi[i]:=k;
if(i mod(i-pi[i])=0)and(pi[i]>0)then r:=i;
end;
writeln(f2,r);
end;
close(f1);
close(f2);
end.