Pagini recente » Cod sursa (job #911737) | Cod sursa (job #699130) | Cod sursa (job #1701378) | Cod sursa (job #434113) | Cod sursa (job #1061979)
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
char s[1000001];
int pi[1000001],l,k,i,j,c,n;
int main()
{
ifstream fin("prefix.in");
ofstream fout("prefix.out");
fin>>n;
for(i=1; i<=n; i++)
{
fin>>s+1;
l=strlen(s+1);
k=0;
pi[1]=0;
for ( j = 2; j <= l; j++ )
{
while ( k && s[ k +1 ] != s[ j ] )
k = pi[ k ];
if ( s[ k +1 ] == s[ j ] )
k++;
pi[ j ] = k;
}
c=0;
for( j=l; j>1; j--)
{
if(pi[j]&& j%(j-pi[j])==0)
{
c=j;
break;
}
}
fout<<c<<"\n";
memset(s,0,sizeof(s));
}
return 0;
}