Pagini recente » Cod sursa (job #1410297) | Cod sursa (job #1461361) | Cod sursa (job #1223378) | Cod sursa (job #2093412) | Cod sursa (job #1165773)
#include <cstdio>
#include <cstring>
#define Nmax 1000005
using namespace std;
char a[Nmax];
int N,pi[Nmax];
inline void Pi()
{
int i,k=0;
pi[1]=0;
for(i=2;i<=N;++i)
{
while(k && a[k+1]!=a[i])
k=pi[k];
if(a[k+1]==a[i])
++k;
pi[i]=k;
}
}
int main()
{
int T,i,sol;
freopen ("prefix.in","r",stdin);
freopen ("prefix.out","w",stdout);
scanf("%d", &T);
while(T--)
{
scanf("%s", (a+1));
N=strlen(a+1);
Pi();
sol=0;
for(i=N;i;--i)
if(pi[i] && i%(i-pi[i])==0)
{
sol=i;
break;
}
printf("%d\n", sol);
}
return 0;
}