模板##
void manacher(char s[],int n){
int pos=0,mx=0;
for(int i=1;i<=n;i++){
if(i<mx) p[i]=min(p[(pos<<1)-i],mx-i]);
else p[i]=1;
while(s[i+p[i]]==s[i-p[i]]) p[i]++;
if(i+p[i]>mx) mx=i+p[i],pos=i;
}
}
void manacher(char s[],int n){
int pos=0,mx=0;
for(int i=1;i<=n;i++){
if(i<mx) p[i]=min(p[(pos<<1)-i],mx-i]);
else p[i]=1;
while(s[i+p[i]]==s[i-p[i]]) p[i]++;
if(i+p[i]>mx) mx=i+p[i],pos=i;
}
}