Pagini recente » Cod sursa (job #1104684) | Cod sursa (job #899584) | Cod sursa (job #1147286) | Cod sursa (job #442151) | Cod sursa (job #1976178)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
const int Nmax = 100005;
int T, pi[Nmax];
string a;
void solve()
{
int i, n, k;
fin >> a;
n = a.length();
a = ' ' + a;
//scanf("%s\n", a+1);
//n = strlen(a+1);
pi[1] = k = 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;
}
for(i=n; i; --i)
if(pi[i]!=0 && pi[i] % (i-pi[i]) == 0)
break;
fout << i<<"\n";
for(i=1; i<=n; ++i) a[i] = 0;
}
int main()
{
fin >> T;
while(T--) solve();
}