Cod sursa(job #2174486)

Utilizator raul044Moldovan Raul raul044 Data 16 martie 2018 12:15:17
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#define maxN 100005
#include <queue>
using namespace std;

ifstream fin("scmax.in");
ofstream fout("scmax.out");

long long n, L[maxN], pre[maxN], MAXval, MAXpoz;
long long A[maxN];

int main () {
    fin >> n;
    for (int i = 1; i <= n; ++i) {
        fin >> A[i];
    }
    L[n] = 1;
    for (int i = n-1; i >= 1; --i) {
        for (int j = i+1; j <= n; ++j) {
            if (A[i] < A[j] and L[i] < L[j] + 1) {
                L[i] = L[j]+1;
                pre[i] = j;
            }
        }
        if (L[i] > MAXval) {
            MAXval = L[i];
            MAXpoz = i;
        }
    }
    fout << MAXval << '\n';
    int i = MAXpoz;
    while (i) {
        fout << A[i] << " ";
        i = pre[i];
    }
}