Pagini recente » Cod sursa (job #493877) | Cod sursa (job #374670) | Cod sursa (job #824745) | Cod sursa (job #3314566) | Cod sursa (job #3329034)
#include <bits/stdc++.h>
#define mod 666013
#define int long long
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
string a;
int lps[1000005],t;
void buildprefix()
{
int k=0;
int mx=0;
int n=a.size();
for(int i=2;i<=n;i++)
{
while(k && a[k]!=a[i-1])
k=lps[k];
if(a[k]==a[i-1])
k++;
lps[i]=k;
if(lps[i]>0 && i%(i-lps[i])==0)
mx=i;
}
for(int i=1;i<n;i++)
lps[i]=0;
g<<mx<<'\n';
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
f>>t;
for(int i=1;i<=t;i++)
{
f>>a;
buildprefix();
}
return 0;
}