Cod sursa(job #635977)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 19 noiembrie 2011 16:04:12
Problema PalM Scor 90
Compilator cpp Status done
Runda .com 2011 Marime 0.85 kb
#include<stdio.h>
#include<cstring>

FILE*f=fopen("palm.in","r");
FILE*g=fopen("palm.out","w");

int n,i,j,k,best,local_max;
int D[505];
char sir[505];

int main () {
	
	fscanf(f,"%s",sir+1);
	
	n = strlen(sir+1);
	
	for ( i = 1 ; i <= n ; ++i ){
		for ( j = i + 1 ; j <= n ; ++j ){
			if ( sir[j] <= sir[i] ){
				if ( best < D[j] * 2 + 1 )
					best = D[j] * 2 + 1;
			}
		}
		for ( j = i + 1 ; j <= n ; ++j ){
			if ( sir[i] == sir[j] ){
				if ( D[j] < 1 )	D[j] = 1; local_max = 0;
				for ( k = j + 1 ; k <= n ; ++k ){
					if ( sir[i] >= sir[k] ){
						if ( D[k] > local_max )	local_max = D[k];
					}
				}
				if ( D[j] < local_max + 1 )	D[j] = local_max + 1;
			}
		}
	}
	
	for ( i = 1 ; i <= n ; ++i ){
		if ( D[i] * 2 > best )	best = D[i] * 2;
	}
	
	fprintf(g,"%d\n",best);
	
	fclose(f);
	fclose(g);
	
	return 0;
}