Pagini recente » Cod sursa (job #2654792) | Cod sursa (job #2984076) | Cod sursa (job #2963953) | Istoria paginii preoni-2007/clasament/runda-2/10 | Cod sursa (job #294856)
Cod sursa(job #294856)
var t:integer;
p:array[1..1000002] of char;
fin,fout:text;
i:integer;
procedure prefix;
var q,k,max:longint;
pre:array[1..1000002] of longint;
begin
k:=0;
pre[1]:=0;
max:=0; q:=2;
while (p[q]<>chr(0)) do
begin
while (k>0) and (p[k+1]<>p[q]) do k:=pre[k];
if (p[k+1]=p[q]) then inc(k);
pre[q]:=k;
if (k>0) and (q mod (q-k)=0) and (q>max) then max:=q;
inc(q);
end;
writeln(fout,max);
end;
begin
assign(fin,'prefix.in'); reset(fin);
assign(fout,'prefix.out'); rewrite(fout);
readln(fin,t); {fillchar(p,sizeof(p),chr(0));}
for i:=1 to t do
begin
readln(fin,p);
prefix;
end;
close(fin); close(fout);
end.