Cod sursa(job #179139)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 15 aprilie 2008 18:13:27
Problema Prefix Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.81 kb
var v:array[1..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;        }
      fillchar(v,sizeof(v),' ');
      readln(f1,v);
      pi[1]:=0;
      k:=0;
      i:=1;
      {for i:=2 to n do    }
      while(v[i+1]<>' ')do
      begin
      i:=i+1;
         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.