Cod sursa(job #2849309)

Utilizator VladPislaruPislaru Vlad Rares VladPislaru Data 14 februarie 2022 20:40:37
Problema PalM Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("palm.in");
ofstream fout ("palm.out");


char s[505];
int dp[505][505];

int main()
{
    fin >> (s + 1);
    int n = strlen(s + 1);
    for (int i = 1; i <= n; i++)
        dp[i][i] = 1;
    for (int i = n - 1; i > 0; i--)
        for (int j = i + 1; j <= n; j++)
        {
            if (s[i] == s[j] && s[i] <= s[i + 1] && s[j] <= s[j - 1])
            {
                dp[i][j] = max(dp[i][j], dp[i + 1][j - 1] + 2);

            }
            dp[i][j] = max({dp[i][j], dp[i + 1][j], dp[i][j - 1]});
        }
    fout << dp[1][n];
    return 0;
}