Pagini recente » Cod sursa (job #2320234) | Cod sursa (job #3278859) | Cod sursa (job #1224338) | Cod sursa (job #3003711) | Cod sursa (job #2557469)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("palm.in");
ofstream fout("palm.out");
int n,d[501][501];
string s;
char lit;
int main()
{
fin>>s;
n=s.size();
int last=0;
int i;
for(lit='z'; lit>='a'; lit--)
{
int ok = 0;
for(i=0; i<=n; i++)
if(s[i] == lit)
d[i][i] = 1, ok = 1;
if (ok)
{
for(int len=2; len<=n; len++)
for(i=0; i+len-1<n; i++)
{
d[i][i+len-1] = max(d[i][i+len-1], max(d[i+1][i+len-1], d[i][i+len-1-1]));
if(s[i] == s[i+len-1] && s[i] == lit)
d[i][i+len-1] = max(d[i][i+len-1], d[i+1][i+len-2] + 2);
}
}
}
fout<<d[0][n-1];
return 0;
}