Cod sursa(job #2537705)

Utilizator LeVladzCiuperceanu Vlad LeVladz Data 3 februarie 2020 21:38:57
Problema PalM Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <cstring>

using namespace std;

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

int n,i,j,d[505][505];
char s[505];

int main()
{
    fin >> (s+1); n = strlen((s+1)); int maxim = 0;
    for (char ch='z'; ch>='a'; ch--)
    {
        for (i=1; i<=n; i++)
        {
            if (s[i] == ch)
                d[i][i] = 1;
            for (int lung=2; i+lung-1<=n; lung++)
            {
                j = i+lung-1;
                if (s[i] == s[j] && s[i] == ch)
                    d[i][j] = max(d[i][j], d[i+1][j-1]+2);
                d[i][j] = max(d[i][j], max(d[i+1][j], d[i][j-1]));
                maxim = max(maxim, d[i][j]);
            }
        }
    }
    fout << maxim;
    return 0;
}