Pagini recente » Cod sursa (job #1930395) | Cod sursa (job #2381573) | Cod sursa (job #636962) | Cod sursa (job #2589030) | Cod sursa (job #1789243)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 500;
char s[1 + MAXN];
int dp[1 + MAXN][1 + MAXN];
int main()
{
char ch;
int i, j, pas;
ifstream fin("palm.in");
ofstream fout("palm.out");
fin >> (s + 1);
int n = strlen(s + 1);
for (ch = 'z'; ch >= 'a'; ch--)
{
for (int i = 1; i <= n; i++)
if (s[i] == ch)
dp[i][i] = 1;
for (pas = 1; pas < n; ++pas)
for (i = 1; i + pas <= n; i++)
{
j = i + pas;
if (s[i] == s[j] && s[i] == ch)
dp[i][j] = 2 + dp[i + 1][j - 1];
dp[i][j] = max(dp[i][j], max(dp[i][j - 1], dp[i + 1][j]));
}
}
fout << dp[1][n] << "\n";
fout.close();
return 0;
}