<span style="font-size:18px;">
</span>
<span style="font-size:18px;">include<cstdio>
#include<cstring>
char str[3000000],s[3000000];
int p[3000000];
int min(int a,int b)
{
if(a<b)
return a;
return b;
}
int max(int a,int b)
{
if(a>b)
return a;
return b;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
memset(p,0,sizeof(p));
memset(s,'\0',sizeof(s));
scanf("%s",str);
int len=strlen(str),i;
for(i=len;i>=1;--i)
{
s[i*2+1]='#';
s[i*2]=str[i-1];
}
s[0]='@';s[1]='#';
int mx=0,mi=0,ans=0;
len=strlen(s);
p[0]=1;
for(i=1;i<len;++i)
{
if(i<mx)
p[i]=min(p[2*mi-i],mx-i);
else
p[i]=1;
while(s[i+p[i]]==s[i-p[i]])
p[i]+=1;
if(mx<p[i]+i)
{
mx=p[i]+i;
mi=i;
}
ans=max(ans,p[i]-1);
}
printf("%d\n",ans);
}
return 0;
}</span>