Pagini recente » Cod sursa (job #1549899) | Cod sursa (job #2953423) | Cod sursa (job #1140492) | Cod sursa (job #283161) | Cod sursa (job #2691476)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 100000
int v[NMAX], d[NMAX], aux[NMAX];
int main() {
FILE *fin, *fout;
int n, i, j, max, c;
fin = fopen( "scmax.in", "r" );
fscanf( fin, "%d", &n );
max = 0;
for( i = 0; i < n; i++ ) {
fscanf( fin, "%d", &v[i] );
d[i] = 1;
for( j = 0; j < i; j++ )
if( v[j] < v[i] && d[j] + 1 > d[i] )
d[i] = d[j] + 1;
if( d[i] > max )
max = d[i];
}
fclose( fin );
i = n - 1;
for( c = max; c > 0; c-- ) {
while( i > 0 && d[i] != c )
i--;
aux[c-1] = v[i];
}
fout = fopen( "scmax.out", "w" );
fprintf( fout, "%d\n", max );
for( i = 0; i < max; i++ )
fprintf( fout, "%d ", aux[i] );
fclose( fout );
return 0;
}