Pagini recente » Cod sursa (job #1451179) | Cod sursa (job #2487840) | Cod sursa (job #1174519) | Cod sursa (job #690114) | Cod sursa (job #1301692)
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 1000010;
int t,n,pi[N];
char a[N];
int solve(char a[],int n)
{
int p = 0;
for (int i=2;i<=n;++i)
{
while ( p>0 && a[i] != a[p+1] )
p = pi[p];
if ( a[i] == a[p+1] )
p++;
pi[i] = p;
}
for (int i=n;i>=1;--i)
if ( i % (i-pi[i]) == 0 )
if ( pi[i] > 0 )
return i;
return 0;
}
int main()
{
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
scanf("%d\n",&t);
while ( t-- )
{
scanf("%s",a+1);
n = strlen(a+1);
printf("%d\n",solve(a,n));
}
}