Pagini recente » Cod sursa (job #2317742) | Cod sursa (job #2376028) | Cod sursa (job #2663467) | Cod sursa (job #893284) | Cod sursa (job #2669979)
#include <bits/stdc++.h>
using namespace std;
ifstream in("prefix.in");
ofstream out("prefix.out");
string s;
int kmp[1000005];
void solve()
{
in>>s;
s="#"+s;
kmp[1]=0;
int ans=0,q=0;
int i=2;
while(i<=s.length())
{
while(q && s[q+1]!=s[i])
q=kmp[q];
if(s[q+1]==s[i])
q++;
kmp[i]=q;
if(kmp[i] && (kmp[i]%(i-kmp[i])==0))
ans=i;
i++;
}
out<<ans<<"\n";
}
int main()
{
int t;
in>>t;
while(t--)
solve();
return 0;
}