Cod sursa(job #863813)

Utilizator misinoonisim necula misino Data 24 ianuarie 2013 08:48:04
Problema PalM Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
#include<cstring>
using namespace std;
ifstream f("palm.in");
ofstream g("palm.out");
int i,j,k,sol,n,d[502][502][27];
char s[501];
int main()
{
    f>>(s+1);
    n=strlen(s+1);
    for(i=1;i<=n;++i)
    for(j=n;j;--j)
    for(k=1;k<=26;++k)
    {
        d[i][j][k]=max(d[i-1][j][k],d[i][j+1][k]);
        if(s[i]==s[j]&&s[i]==k+'a'-1)
        d[i][j][k]=max(d[i][j][k],d[i-1][j+1][k]+1);
        d[i][j][k]=max(d[i][j][k],d[i][j][k-1]);
    }
    for(i=1;i<=n;++i)
    {
        sol=max(sol,max(d[i][i][26]*2-1,d[i][i+1][26]*2));
    }
    g<<sol<<'\n';
    return 0;
}