Cod sursa(job #2559543)

Utilizator IoanMihaiIoan Mihai IoanMihai Data 27 februarie 2020 13:06:40
Problema PalM Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("palm.in");
ofstream fout("palm.out");
#define SMAX 505
string s;
int n,d[SMAX][SMAX];
bool ok;
int main()
{
    getline(fin,s);
    n=s.size();
    for (char c='z';c>='a';c--)
    {
        ok=false;
        for (int i=0;i<n;i++)
            if (s[i]==c) ok=true,d[i][i]=1;
        if (ok)
        {
            for (int len=2;len<=n;len++)
                for (int i=0;i+len-1<n;i++)
                {
                    d[i][i+len-1]=max(d[i][i+len-1],max(d[i+1][i+len-1],d[i][i+len-2]));
                    if (s[i]==s[i+len-1] && s[i]==c)
                        d[i][i+len-1]=max(d[i][i+len-1],d[i+1][i+len-2]+2);
                }
        }
    }
    fout<<d[0][n-1]<<'\n';
    return 0;
}