Pagini recente » Cod sursa (job #3165051) | Cod sursa (job #3185663) | Cod sursa (job #3284168) | Cod sursa (job #3256304) | Cod sursa (job #3288378)
#include <bits/stdc++.h>
using namespace std;
ifstream in("prefix.in");
ofstream out("prefix.out");
char n[1000005];
int len,lps[1000005],i,t,lst,j,poz,siz;
int main()
{
in>>t;
while(t--)
{
in>>n;
len=0;
lps[0]=0;
poz=0;
for(i=1; n[i]; ++i)
{
if(n[i]==n[len])
++len,lps[i]=len;
else if(!len)
lps[i]=0;
else
{
while(len)
{
len=lps[len-1];
if(n[i]==n[len])
{
++len;
lps[i]=len;
break;
}
else lps[i]=0;
}
}
if(len && (i+1)%(i-len+1)==0)
poz=i+1;
}
out<<poz<<'\n';
}
}