Pagini recente » Cod sursa (job #2604015) | Cod sursa (job #990637) | Cod sursa (job #3179973) | Cod sursa (job #2526117) | Cod sursa (job #2581048)
#include <bits/stdc++.h>
#define N 1000005
using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
int pi[N],m,n,cnt,t;
char a[N];
int prefix()
{
int i, q = 0, maxim = 0;
pi[1] = 0;
return maxim;
}
int main()
{
fin>>t;
char car;
fin>>noskipws>>car;
for(int p=1;p<=t;p++)
{
int maxim=0,q=0;
pi[1]=0;
n=1;
fin>>noskipws>>a[1]>>car;
while(car!='\n')
{
a[++n]=car;
while (q && a[q+1] != a[n])
q=pi[q];
if (a[q+1]==a[n])q++;
pi[n] = q;
if(pi[n]!=0&&pi[n]%(n-pi[n])==0)maxim=n;
fin>>noskipws>>car;
}
fout<<maxim<<'\n';
}
}