Pagini recente » Cod sursa (job #2143930) | Cod sursa (job #3220070) | Cod sursa (job #934174) | Cod sursa (job #306385) | Cod sursa (job #19316)
Cod sursa(job #19316)
#include <stdio.h>
#include <string.h>
#define LMAX 1000010
int n;
char s[LMAX];
int main()
{
int q,t,i,j,l = 0,lc, p = 0,beg,e,E,lmax;
freopen("prefix.in", "r", stdin);
freopen("prefix.out", "w", stdout);
scanf("%d", &n);
gets(s);
for (j = 1; j <= n; j++)
{
gets(s);
q = strlen(s);
l = p = 0;
beg = 0;
lmax = 0;
for (i = 1; i < q;)
{
e = 0;
if (s[i] == s[beg]) beg++, e = 1;
else
{
if (beg == 0) e = 1;
beg = 0, p = 0, l = 0;
}
if (beg == p)
{
l += p;
if (l > lmax) lmax = l;
beg = 0;
}
if (beg)
if (i & 1)
if ( (beg == (i+1) >> 1) || ( beg == 1 && i == 1))
{
l = i+1;
if (l > lmax) lmax = l;
p = (i+1) >> 1;
beg = 0;
}
if (e) i++;
}
printf("%d\n", lmax);
}
fclose(stdin);
fclose(stdout);
return 0;
}