Pagini recente » Cod sursa (job #1843368) | Cod sursa (job #1402468) | Cod sursa (job #2608900) | Cod sursa (job #3275049) | Cod sursa (job #476512)
Cod sursa(job #476512)
#include<cstdio>
#include<cstring>
using namespace std;
const char iname[]="prefix.in";
const char oname[]="prefix.out";
const int maxn=1000005;
char s[maxn];
int pi[maxn],t,i,rez,k;
int main()
{
freopen(iname,"r",stdin);
freopen(oname,"w",stdout);
scanf("%d\n",&t);
while(t--)
{
fgets(s+1,sizeof(s),stdin);
k=0;rez=0;
for(i=2;s[i]&&s[i]!='\n';++i)
{
while(k&&s[k+1]!=s[i])
k=pi[k];
if(s[k+1]==s[i])
++k;
pi[i]=k;
if(k&&i%(i-k)==0)
rez=i;
}
printf("%d\n",rez);
}
}