Cod sursa(job #898146)

Utilizator cprogrammer1994Cprogrammer cprogrammer1994 Data 28 februarie 2013 07:22:27
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <cstring>
#include <cstdio>
#include <cmath>

int n, m, p;
int a[100001];
int b[100001];
int c[100001];

FILE * in = fopen("scmax.in", "rt");
FILE * out = fopen("scmax.out", "wt");

int main() {
    fscanf(in, "%d", &n);
    for (int i = 0; i < n; ++i) {
        fscanf(in, "%d", &a[i]);
    }
    for (int i = 0; i < n; ++i) {
        p = 0;
        while (a[i] > c[p] && p <= m) {
            ++p;
        }
        b[i] = p;
        c[p] = a[i];
        if (m < p) m = p;
    }

    fprintf(out, "%d\n", m);
    for (int i = 1; i <= m; ++i) {
    	fprintf(out, "%d ", c[i]);
    }

    fclose(in);
    fclose(out);
}