Pagini recente » Cod sursa (job #1604356) | Cod sursa (job #1327458) | Cod sursa (job #3123554) | Cod sursa (job #1417410) | Cod sursa (job #2729459)
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("prefix.in");
ofstream out("prefix.out");
const int N =1e6;
char c[N+2];
int aux[N+2];
int main()
{
int t;
in>>t;
while(t--)
{
int len=0;
aux[1]=0;
int ans=0;
in>>(c+1);
int n=strlen(c+1);
for(int i=2;i<=n;i++)
{
while(len>0 && c[len+1]!=c[i]) len = aux[len-1];
if(c[i]==c[len+1])
{
len++;
}
aux[i]=len;
if(len>0 && i%(i-len)==0)
{
ans = i;
}
}
out<<ans<<'\n';
}
return 0;
}