Cod sursa(job #638335)

Utilizator stay_awake77Cangea Catalina stay_awake77 Data 20 noiembrie 2011 20:20:03
Problema PalM Scor 20
Compilator cpp Status done
Runda .com 2011 Marime 0.58 kb
#include <cstdio>
#include <cstring>

#define NMAX 505

char S[NMAX], Sr[NMAX];
int D[NMAX][NMAX], i, j, N;

inline int MAX( int x, int y )
{
	return ( x > y ) ? x : y;
}

int main()
{
	freopen("palm.in", "r", stdin);
	freopen("palm.out", "w", stdout);
	
	gets( S+1 );
	N = strlen( S+1 );
	
	strcpy( Sr+1, S+1 );
	for( i = 1; i <= N; ++i )
		Sr[i] = S[N-i+1];
	
	for( i = 1; i <= N; ++i )
		for( j = 1; j <= N; ++j )
			if( S[i] == Sr[j] ) D[i][j] = 1 + D[i-1][j-1];
			else D[i][j] = MAX( D[i-1][j], D[i][j-1] );
	
	printf("%d\n", D[N][N]);
	
	return 0;
}