Pagini recente » Cod sursa (job #1737631) | Cod sursa (job #361563) | Cod sursa (job #1503598) | Cod sursa (job #286541) | Cod sursa (job #2654840)
#include <fstream>
using namespace std;
string zero=" ";
int pi[1000005];
int main()
{
ifstream cin("prefix.in");
ofstream cout("prefix.out");
int t,n,l,ans;
cin >> t;
while(t--)
{
string a;
cin >> a;
n=a.size();
a=zero+a;
ans=0;
l=0;
for(int i=2; i<=n; i++)
{
while(l>0 && a[l+1]!=a[i])
l=pi[l];
if(a[l+1]==a[i])
l++;
pi[i]=l;
if(l>0 && i%(i-l)==0)
ans=i;
}
cout << ans << '\n';
}
return 0;
}