Pagini recente » Cod sursa (job #2549036) | Cod sursa (job #2576403) | Cod sursa (job #470615) | Cod sursa (job #135493) | Cod sursa (job #2048510)
#include <bits/stdc++.h>
using namespace std;
ifstream f("prefix.in"); ofstream g("prefix.out");
int nrt,phi[1000010];
char P[1000010];
int main()
{ f>>nrt;
while(nrt--)
{ f>>(P+1);
phi[1]=0;
int m=strlen(P+1),ma=0,k=0;
for(int i=2; i<=m; ++i)
{ while(k && P[k+1]!=P[i]) k=phi[k];
if(P[i]==P[k+1]) k++;
phi[i]=k;
if(k && i%(i-k)==0) ma=i;
}
g<<ma<<'\n';
}
return 0;
}