Pagini recente » Cod sursa (job #2495456) | Cod sursa (job #1330537) | Cod sursa (job #836421) | Cod sursa (job #848855) | Cod sursa (job #1121164)
//horatiu11
# include <cstdio>
# include <cstring>
# define nmax 1000001
using namespace std;
int n,t,pi[nmax],sol,k;
char s[nmax],c;
inline void prefix()
{
int i;
pi[1]=0;k=0;sol=0;
for(i=2;i<=n;++i)
{
while(k>0 && s[i]!=s[k+1])
k=pi[k];
if(s[i]==s[k+1])++k;
pi[i]=k;
}
sol=0;
for(i=n;i>1 && !sol;--i)
if(pi[i] && !(i%(i-pi[i])) )sol=i;
}
int main()
{
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
scanf("%d%c",&t,&c);
while(t)
{
gets(s+1);n=strlen(s+1);
prefix();
printf("%d\n",sol);
--t;
}
return 0;
}