Cod sursa(job #1818619)

Utilizator Bodo171Bogdan Pop Bodo171 Data 29 noiembrie 2016 15:38:55
Problema PalM Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
using namespace std;
string s;
int i,j,n,len,k,best[505][505];
char c;
int main()
{
    ifstream f("palm.in");
    ofstream g("palm.out");
    f>>s;
    n=s.size();
    s+=' ';
    for(k=25;k>=0;k--)
    {
        c=k+'a';
        for(i=1;i<=n;i++)
            if(s[i-1]==c) best[1][i]=1;
        for(len=0;len<=n;len++)
            for(i=1;i<=n-len+1;i++)
        {
            if(best[len][i]>best[len+1][i])
                best[len+1][i]=best[len][i];
            if(best[len][i]>best[len+1][i-1])
                best[len+1][i-1]=best[len][i];
            if(i>=2&&best[len][i]+2>best[len+2][i-1]&&s[i-2]==s[i+len-1]&&s[i-2]==c)
                {best[len+2][i-1]=best[len][i]+2;}
        }
    }
    g<<best[n][1];
    return 0;
}