Cod sursa(job #759270)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 17 iunie 2012 13:03:43
Problema Prefix Scor 40
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.77 kb
Program prefix;
 var s:ansistring;
     urm:array [1..1000001] of longint;
     i,m,t,max,j:longint;
     fi,fo:text;
procedure urmatorul;
 var k,q:integer;
begin
 urm[1]:=0; k:=0; max:=0;
  for q:=2 to m do begin
          while (k>0) and (s[q]<>s[k+1]) do k:=urm[k];
           if s[k+1]=s[q] then inc(k);
            urm[q]:=k;
             end;
end;
begin
 assign(fi,'prefix.in');
  assign(fo,'prefix.out');
 reset(fi); rewrite(fo); readln(fi,t);
  for i:=1 to t do begin
                    readln(fi,s); m:=length(s);
                    urmatorul;
                    for j:=m downto 1 do
                     if (urm[j]>0) and (j mod (j-urm[j])=0) then begin max:=j; break; end;
                    writeln(fo,max);
               end;
  close(fo);
end.