Pagini recente » Cod sursa (job #2198941) | Cod sursa (job #2337494) | Cod sursa (job #1438162) | Cod sursa (job #889041) | Cod sursa (job #641068)
Cod sursa(job #641068)
#include <cstdio>
#include <iostream>
#include <string.h>
using namespace std;
char v[505];
int dp[505][505][26];
int main()
{
freopen("palm.in","r", stdin);
freopen("palm.out","w", stdout);
scanf("%s",v);
int n=strlen(v);
for(int i=0;i<n;i++) dp[i][i][v[i]-'a']=1;
for(int d=2;d<=n;d++)
{
for(int i=0;i+d-1<n;i++)
{
int j=i+d-1;
for(int k=0;k<26;k++)
{
if(v[i]==v[j] && v[i]-'a'==k)
{
for(int k1=k;k1<26;k1++)
dp[i][j][k]=max(dp[i][j][k], 2+dp[i+1][j-1][k1]);
}
else dp[i][j][k]=max(dp[i+1][j][k],dp[i][j-1][k]);
}
}
}
int maxm=0;
for(int i=0;i<26;i++) maxm=max(maxm,dp[0][n-1][i]);
printf("%d",maxm);
return 0;
}