Cod sursa(job #333844)

Utilizator misuvdPopovici Mihai misuvd Data 24 iulie 2009 11:25:01
Problema Prefix Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<string.h>
#include<fstream.h>
char a[10002];
int u[10002],n,i,m,max;
void prefix()
{ u[1]=0;
  int k=0;
  for(int q=2;q<=m;q++)
    {
     while(a[q]!=a[k+1]&&k>0)
      k=u[k];
      if(a[q]==a[k+1])
       k++;
       u[q]=k;
       if(u[q]>0&&q%(q-k)==0&&q>max)
       max=q;
    }
}
int main()
{
 ifstream f("prefix.in");
 ofstream g("prefix.out");
 f>>n;
 for(i=1;i<=n;i++)
 {
  max=0;
     f>>a[i];
  m=strlen(a)-1;
    for(int j=m;j>=0;j--)
    a[j+1]=a[j];
    a[0]=' ';
    m++;
    prefix();
  if(m>1)
      g<<max<<"\n";
  else
  g<<0<<"\n";
 }
 return 0;
}