Cod sursa(job #2174423)

Utilizator raul044Moldovan Raul raul044 Data 16 martie 2018 12:00:26
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#define maxN 100005

using namespace std;

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

int 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 = n; j > i; --j) {
            if (A[i] < A[j] and L[j] >= L[i]) {
                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];
    }
}