Pagini recente » Cod sursa (job #886795) | Cod sursa (job #1691621) | Cod sursa (job #24048) | Cod sursa (job #1333476) | Cod sursa (job #253247)
Cod sursa(job #253247)
#include <cstdio>
#include <cstring>
#define MAX_S 1000005
char S[MAX_S];
int pi[MAX_S];
int T, N, MAX;
void make_prefix()
{
int q = 0, i;
for(i = 2, pi[1] = 0; i <= N; ++i)
{
while(q && S[q+1] != S[i])
q = pi[q];
if(S[q+1] == S[i])
++q;
pi[i] = q;
if(q && (i % (i - q) == 0))
MAX = i;
}
}
void solve()
{
gets(S + 1);
N = strlen(S + 1);
MAX = 0;
make_prefix();
printf("%d\n",MAX);
}
int main()
{
freopen("prefix.in","rt",stdin);
freopen("prefix.out","wt",stdout);
scanf("%d\n",&T);
while(T--)
}