Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>#include<cstring>#include<iostream>using namespace std;#define MAXN 1000100char s[MAXN], str[MAXN*2];int len, p[MAXN*2];void Manacher(){int mx = 0;int id;for (int i = 1; i < len; ++i){if (mx > i)p[i] = min(p[id*2-i], mx-i);else p[i] = 1;for (;str[i-p[i]]==str[i+p[i]];p[i]++);if (p[i] + i > mx){mx = p[i]+i;id = i;}}}int main(){