Pagini recente » Cod sursa (job #1421161) | Cod sursa (job #1195407) | Cod sursa (job #799691) | Cod sursa (job #975252) | Cod sursa (job #984457)
Cod sursa(job #984457)
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,d[505][505][30];
char s[505];
int solve()
{
n=strlen(s+1);
for(int i=n;i;i--)
{
d[i][i][s[i]-'a']=1;
for(int k=24;k>=0;k--)
d[i][i][k]=max(d[i][i][k],d[i][i][k+1]);
for(int j=i+1;j<=n;j++)
{
for(int k=0;k<26;k++)
{
d[i][j][k]=max(d[i][j-1][k],d[i+1][j][k]);
if(s[i]==s[j] && s[i]-'a'==k)
d[i][j][k]=(d[i+1][j-1][k]+2);
}
for(int k=24;k>=0;k--)
d[i][j][k]=max(d[i][j][k],d[i][j][k+1]);
}
}
return d[1][n][0];
}
int main()
{
freopen("palm.in", "r", stdin);
freopen("palm.out", "w", stdout);
gets(s+1);
printf("%d",solve());
return 0;
}