错的测试点居然就是样例……
#include <iostream>
using namespace std;
char c[20005];
char yc[20005];
int n, cnt, p[20005], ans,ansl,ansr;
void read(){
char c1= '`';
while(c1 != '\n') {
c1 = getchar();
yc[++n] = c1;
if (c1 >= 'a' && c1 <= 'z')
c[++cnt] = c1, p[cnt] = n;
else if (c1 >= 'A' && c1 <= 'Z')
c[++cnt] = c1-'A'+'a', p[cnt]=n;
}
}
void little_manacher(){
for (int i = 1; i <= cnt; i++){
int l = i, r = i;
while(l >= 1 && r <= cnt && c[l] == c[r]){l--;r++;}
if (r-l-1 > ans) {//-1是因为(r-1)-(l+1)+1
ans = r-l-1;
ansl = l+1; ansr = r-1;
}
}
}
int main(){
read();
little_manacher();
cout << ans << "\n";
for (int i = p[ansl]; i <= p[ansr]; i++) cout << yc[i];
}