玩了一天 晚上才做题
/*
ID: Jang Lawrence
PROG: calfflac
LANG: C++
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
char a[60100],b[25555];
int pos[26555];
bool is(char c)
{
return (c>='A'&&c<='Z')||(c>='a'&&c<='z');
}
char f(char c)
{
if(c>='A'&&c<='Z') return c+32;
return c;
}
int ans,ansl,ansr;
int p=0,l=0;
void dfs(int k)
{
int res=1;
int l=k-1,r=k+1;
while(b[l]==b[r]&&l>=0&&(r<p))
{
res+=2;
l--;
r++;
}
if(ans<res){ans=res,ansl=l+1,ansr=r -1;}
}
void dfs(int j,int k)
{
int res=0;
while(b[j]==b[k]&&j>=0&&(k<p))
{
res+=2;
j--;
k++;
}
if(ans<res) {ans=res,ansl=j+1,ansr=k-1;}
}
int main()
{
#ifndef DEBUG
freopen("calfflac.in","r",stdin);
freopen("calfflac.out","w",stdout);
#endif
char c;
while(scanf("%c",&c)==1)
{
a[l++]=c;
if(is(c))
{
b[p]=f(c);
pos[p]=l-1;
++p;
}
}
for(int i=0;i<p-1;++i)
dfs(i),dfs(i,i+1);
printf("%d\n",ans);
for(int i=pos[ansl];i<=pos[ansr];++i)
{
putchar(a[i]);
}
puts("");
return 0;
}