Pagini recente » Cod sursa (job #1493304) | Cod sursa (job #150801) | Istoria paginii runda/porc_aur | Cod sursa (job #999454) | Cod sursa (job #675121)
Cod sursa(job #675121)
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define maxn 510
#define maxs 27
int n;
char s[maxn];
int d[maxn][maxn][maxs];
int main()
{
freopen("palm.in", "r", stdin);
freopen("palm.out", "w", stdout);
scanf("%s", s+1);
n=strlen(s+1);
for(int i=1; i<=n; ++i)
{
s[i]-='a';
d[i][i][s[i]]=1;
}
for(int i=1; i<=n; ++i)
for(int j=1; j+i-1<=n; ++j)
{
if(s[j]==s[i+j-1] && i!=1)
d[j][i+j-1][s[j]]=d[j+1][i+j-2][s[j]]+2;
for(int k=25; k>=0; --k)
d[j][i+j-1][k]=max(max(d[j][i+j-1][k], d[j][i+j-1][k+1]), max(d[j][i+j-2][k], d[j+1][i+j-1][k]));
}
printf("%d\n", d[1][n][0]);
return 0;
}