Pagini recente » Cod sursa (job #993123) | Cod sursa (job #230930) | Cod sursa (job #2470202) | Cod sursa (job #2819535) | Cod sursa (job #372981)
Cod sursa(job #372981)
#include <stdio.h>
#define Nmax 100010
long x[Nmax], L[Nmax], T[Nmax];
long i, j, p, n;
long max, q;
FILE * g = fopen ("scmax.out", "w");
void ordine (int i){
if (i != 0){
ordine (T[i]);
fprintf (g, "%ld ", x[i]);
}
}
int main () {
FILE * f = fopen ("scmax.in", "r");
fscanf (f, "%ld", &n);
for (i = 1 ; i <= n ; i++)
fscanf (f, "%ld", &x[i]);
L[1] = 1;
for (i = 2 ; i <= n ; i++){
max = 0;
p = 0;
for (j = 1 ; j < i ; j++){
if (max < L[j] && x[j] < x[i]){
max = L[j];
p = j;
}
}
L[i] = max + 1;
T[i] = p;
}
max = 0;
for (i = 1 ; i <= n ; i++)
if (max < L[i]) {
max = L[i];
q = i;
}
fprintf (g, "%ld\n", max);
ordine (q);
fclose(f);
fclose(g);
return 0;
}