Pagini recente » Cod sursa (job #268844) | Cod sursa (job #1786931) | Cod sursa (job #615660) | Cod sursa (job #1805571) | Cod sursa (job #1966866)
#include <bits/stdc++.h>
using namespace std;
int n,in,k,phi[1000010],i,lu,ma,pm;
char st[1000010];
int main()
{
ifstream f ("prefix.in");
ofstream g ("prefix.out");
f>>n;
for(in=1; in<=n; ++in)
{
f>>st+1;
k=0;
phi[1]=0;
lu=strlen(st+1);
ma=0;
pm=1;
for(i=2; i<=lu; ++i)
{
while(k>0&&st[k+1]!=st[i])k=phi[k];
if(st[i]==st[k+1])++k;
phi[i]=k;
if(phi[i]>ma)ma=phi[i],pm=i;
}
if(ma==0)g<<ma<<'\n';
else
{
pm-=ma;
ma/=pm;
g<<(ma+1)*pm<<'\n';
}
}
return 0;
}