Pagini recente » Cod sursa (job #173928) | Cod sursa (job #209411) | Cod sursa (job #2181175) | Cod sursa (job #635874) | Cod sursa (job #635972)
Cod sursa(job #635972)
#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;
}