Pagini recente » Cod sursa (job #2349743) | Cod sursa (job #1431738) | Cod sursa (job #1623353) | Cod sursa (job #129468) | Cod sursa (job #1497343)
#include <fstream>
#include <string.h>
#define nMax 1000005
using namespace std;
ifstream fin("prefix.in");
ofstream fout("prefix.out");
char sir[nMax];
int dp[nMax], test, t, n, j, k, i;
int main()
{
fin>>test;
fin.get();
for(t=1;t<=test;t++)
{
fin.getline(sir+1, nMax);
n=strlen(sir+1);
memset(dp, 0, sizeof(dp));
for(j=2;j<=n;j++)
{
if(sir[k+1]==sir[j])
k++;
else
{
if(sir[1]==sir[j])
k=1;
else
k=0;
}
dp[j]=k;
}
for(j=n;j>=1;j--)
{
if(dp[j]!=0)
if(j%(j-dp[j])==0)
break;
}
fout<<j<<'\n';
}
return 0;
}