Cod sursa(job #481699)

Utilizator zloteanu.adrianzloteanu adrian nichita zloteanu.adrian Data 1 septembrie 2010 13:18:17
Problema Prefix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include<fstream>
#include<string>
using namespace std;
ifstream q("prefix.in");
ofstream w("prefix.out");
char s[1000001];
long k,urm[1000001],i,rez,t;
int main()
{int n;
q>>n;
q.getline(s,1000000);
for(int j=1;j<=n;++j)
  {q.getline(s+1,1000001);
  k=0;
  rez=0;
  t=strlen(s+1);
  urm[1]=0;
for(i=2;i<=t;++i)
  {while(k>0&&s[i]!=s[k+1])
   k=urm[k];
  if(s[i]==s[k+1]) k++;
   urm[i]=k;
  if(k>0&&(i%(i-k)==0))
   rez=i;}
  w<<rez<<'\n';}
return 0;}