Cod sursa(job #2457717)

Utilizator Ioan_AnghelIoan Anghel Ioan_Anghel Data 18 septembrie 2019 15:40:29
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int v[100000], l[100000], pred[100000], maxi, a, pmax, lc, n;

void subsir(int p)
{
    if(pred[p] != 0){
        subsir(pred[p]);
    }
    out << v[p] << " ";
}

int main()
{
    in >> n;
    for(int i = 1; i <= n; i++){
        in >> v[i];
        lc = 0;
        for(int j = 1; j < i; j++){
            if(v[j] < v[i]){
                if(l[j] > lc){
                    lc = l[j];
                    pred[i] = j;
                }
            }
        }
        l[i] = 1 + lc;
        if(l[i] > l[pmax]){
            pmax = i;
        }
    }
    out << l[pmax] << "\n";
    subsir(pmax);

    return 0;
}