Cod sursa(job #1475034)

Utilizator AlexNiuclaeNiculae Alexandru Vlad AlexNiuclae Data 23 august 2015 15:03:20
Problema PalM Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;

int i , L , lenght;
int dp[510][510];
string sir;
char alpha;

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

    fin >> sir;
    lenght = sir.size();
    sir = ' ' + sir;

    for (alpha = 'z'; alpha >= 'a'; --alpha)
    {
        for (i = 1; i <= lenght; ++i)
            if (sir[i] == alpha) dp[i][i] = 1;

        for (L = 1; L < lenght; ++L)
            for (i = 1; i + L <= lenght; ++i)
            {
                if (sir[i] == sir[i+L] && sir[i] == alpha)
                    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]));
            }
    }

    fout << dp[1][lenght];

    return 0;
}