Pagini recente » Cod sursa (job #2036367) | Cod sursa (job #2357580) | Cod sursa (job #2953885) | Cod sursa (job #2394226) | Cod sursa (job #2542080)
#include<bits/stdc++.h>
using namespace std;
const int maxN=(5e2)+5;
char s[maxN];
int dp[maxN][maxN];
int main()
{
freopen("palm.in","r",stdin);
freopen("palm.out","w",stdout);
scanf("%s",s+1);
int n=strlen(s+1);
for(int let='z';let>='a';let--)
{
for(int i=1;i<=n;i++)
if(s[i]==let) dp[i][i]=1;
for(int l=2;l<=n;l++)
{
for(int i=1;(i+l-1)<=n;i++)
{
int j=i+l-1;
dp[i][j]=max(dp[i][j],max(dp[i][j-1],dp[i+1][j]));
if(s[i]==s[j] && s[i]==let) dp[i][j]=max(dp[i][j],2+dp[i+1][j-1]);
}
}
}
printf("%d\n",dp[1][n]);
return 0;
}