Pagini recente » Cod sursa (job #1065437) | Cod sursa (job #1756259) | Cod sursa (job #21292) | Cod sursa (job #2875633) | Cod sursa (job #218386)
Cod sursa(job #218386)
#include <cstdio>
#include <cstring>
#define MAXIMUS 1000002
using namespace std;
char s[MAXIMUS];
int max,l,k,poz[MAXIMUS],n;
void pref()
{
for(int i=2;i<=l;i++)
{
while(k && s[k+1]!=s[i])
k=poz[k];
if(s[k+1]==s[i])
k++;
poz[i]=k;
if(k&&(i%(i-k)==0))
max=i;
}
}
int main()
{
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
scanf("%d\n",&n);
for(int i=0;i<n;i++)
{
scanf("%s",s+1);
l=strlen(s+1);
max=0;
k=0;
pref();
printf("%d\n",max);
}
}