Cod sursa(job #2537712)

Utilizator LeVladzCiuperceanu Vlad LeVladz Data 3 februarie 2020 21:42:15
Problema PalM Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 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 (int lung=2; lung<=n; lung++)
            for (i=1; i+lung-1<=n; i++)
            {
                if (s[i] == ch)
                    d[i][i] = 1;
                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;
}