Pagini recente » Cod sursa (job #3258137) | Cod sursa (job #5842) | Cod sursa (job #2713620) | Cod sursa (job #973403) | Cod sursa (job #341130)
Cod sursa(job #341130)
var s:array[1..1000000] of char;
pi:array[1..1000000] of longint;
t,contor,a,b,k,i,m:longint;
f,g:text;
begin
assign(f,'prefix.in');
assign(g,'prefix.out');
reset(f);rewrite(g);
readln(f,t);
for contor:=1 to t do
begin
for i:=1 to b do
s[i]:=#0;
readln(f,s);
a:=1;b:=1000000;
while a<=b do
begin
m:=a+(b-a) div 2;
if s[m]=#0 then
b:=m-1
else
a:=m+1;
end;
pi[1]:=0;
k:=0;a:=0;
for i:=2 to b do
begin
while (k>0) and (s[k+1]<>s[i]) do
k:=pi[k];
if s[k+1]=s[i] then
k:=k+1;
pi[i]:=k;
if (k>0) and (i mod (i-k)=0) then
a:=i;
end;
writeln(g,a);
end;
close(f);close(g);
end.