Cod sursa(job #2541626)

Utilizator mirceaisherebina mircea mirceaishere Data 8 februarie 2020 17:41:06
Problema PalM Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <cstdio>
#include <cstring>
using namespace std;
ifstream fin("palm.in");
ofstream fout("palm.out");

int n, i, j, k, d[510][510][30], sol, aux;
char s[510], ch;

int main(){
    fin>>(s+1);
    n=strlen(s+1);
    for(i=1; i<=n; i++){
        for(j=n; j>=0; j--){
            for(k=0; k<=25; k++){
                ch=k+'a';
                d[i][j][k] = max( max(d[i][j][k], d[i-1][j][k]), max(d[i][j+1][k], d[i][j][k-1]) );
                if(s[i]==ch && s[j]==ch){
                    d[i][j][k]=max(d[i][j][k], d[i-1][j+1][k]+1);
                }
            }
        }

    }
    for(i=1; i<=n; i++){
        /// daca secventa are in varf un element sau 2
        aux=max(d[i][i][25]*2-1, d[i][i+1][25]*2);
        sol=max(sol, aux);

    }
    fout<<sol;
}