Pagini recente » Cod sursa (job #2426119) | Cod sursa (job #1558016) | Cod sursa (job #2229341) | Cod sursa (job #68986) | Cod sursa (job #1308887)
#include<fstream>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
int t,i,n,k,prefix[1000005];
string s;
int main()
{
ifstream cin("prefix.in");
ofstream cout("prefix.out");
cin>>t; getline(cin,s);
while(t--)
{
getline(cin,s); n=s.length();
memset(prefix,0,n+1);
for(i=1,k=0;i<n;++i)
{
while(k>0 && s[i]!=s[k]) k=prefix[k-1];
if(s[i]==s[k]) ++k;
prefix[i]=k;
}
for(i=n;i>0;--i)
if(!(i%(i-prefix[i-1])) && prefix[i-1]) cout<<i<<'\n',i=-1;
if(i==0) cout<<"0\n";
}
return 0;
}