Pagini recente » Cod sursa (job #919129) | Cod sursa (job #2420686) | Cod sursa (job #1621238) | Cod sursa (job #1785932) | Cod sursa (job #2541631)
#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;
char s[510], ch;
int main(){
fin>>(s+1);
n=strlen(s+1);
for(i=1; i<=n; i++){
for(j=n; j>=1; j--){
for(k=0; k<=25; k++){
ch=k+'a';
if(s[i]==ch && s[j]==ch){
d[i][j][k]=d[i-1][j+1][k]+1;
}
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]));
}
}
}
for(i=1; i<=n; i++){
/// daca secventa are in varf un element sau 2
sol=max(sol, max(d[i][i][25]*2-1, d[i][i+1][25]*2));
}
fout<<sol;
}