Pagini recente » Cod sursa (job #2832403) | Cod sursa (job #9092) | Cod sursa (job #582219) | Cod sursa (job #3273180) | Cod sursa (job #2568788)
#include <fstream>
#include <cstring>
#define N 501
using namespace std;
ifstream f ( "palm.in" );
ofstream g ( "palm.out" );
char S[N], let;
int d[N][N];
int main()
{ int n, i, j, l, Max = 0;
f >> ( S + 1 );
n = strlen ( S + 1 );
for ( let = 'z'; let >= 'a'; let-- ){
for ( i = 1; i <= n; i++ )
if ( S[i] == let )
d[i][i] = 1;
for ( l = 2; l <= n; l++ ){
for ( i = 1; i <= n - l + 1; i++ ){
j = i + l - 1;
if ( S[i] == S[j] && S[i] == let )
d[i][j] = max ( d[i][j], d[i + 1][j - 1] + 2 );
d[i][j] = max ( d[i][j], max ( d[i + 1][j], d[i][j - 1] ) );
}
}
Max = max ( Max, d[1][n] );
}
g << Max;
return 0;
}