Pagini recente » Cod sursa (job #1870490) | Cod sursa (job #2521522) | Cod sursa (job #1803601) | Cod sursa (job #352797) | Cod sursa (job #1745342)
#include <fstream>
#include <cstring>
using namespace std;
ifstream cin("palm.in");
ofstream cout("palm.out");
const int MAXN = 500;
char s[1 + MAXN];
int dp[1 + MAXN][1 + MAXN];
int main() {
cin >> s + 1;
int n = strlen(s + 1);
for (char letter = 'z'; letter >= 'a'; letter--) {
for (int i = 1; i <= n; i++)
if (s[i] == letter)
dp[i][i] = 1;
for (int l = 1; l < n; l++)
for (int i = 1; i + l <= n; i++) {
if (s[i] == s[i + l] && s[i] == letter)
dp[i][i + l] = dp[i + 1][i + l - 1] + 2;
dp[i][i + l] = max(dp[i][i + l], max(dp[i][i + l - 1], dp[i + 1][i + l]));
}
}
cout << dp[1][n];
return 0;
}