RT,WA了1,2,3和9,10,11
// Problem: P3805 【模板】manacher算法
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P3805
// Memory Limit: 512 MB
// Time Limit: 500 ms
// Powered by CP Editor (https://github.com/cpeditor/cpeditor)
#include <bits/stdc++.h>
using namespace std;
#define M 11000005
string t,s="";
int mid,mr,f[2*M];
int manacher()
{
f[0]=1;
int ans=0;
for(int i=1;i<s.length();i++)
{
f[i]=min(((i<mr)?f[mid*2-i]:0),int(s.length())-i-1);
while(i+f[i]+1<s.length()&&i-1-f[i]>=0&&s[i+1+f[i]]==s[i-1-f[i]])
{
f[i]++;
}
if(i+f[i]-1>mr)
{
mr=i+f[i];
mid=i;
}
if(s[i]=='#')
{
ans=max(ans,(f[i]+1)/2*2);
}
else
{
ans=max(ans,(f[i]/2)*2+1);
}
}
return ans;
}
int main()
{
cin>>t;
for(int i=0;i<t.length();i++){s+=t[i];s+="#";}
cout<<manacher();
return 0;
}