Cod sursa(job #2353648)

Utilizator Robys01Robert Sorete Robys01 Data 24 februarie 2019 14:24:57
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>

using namespace std;

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


int n, v[1000001], L[1000001];

void Rezolvare(){
    L[n-1] = 1;
    int maxx=0, t;
    for(int i=n-2; i>=0; i--){
        int maxim = 0;
        for(int j=i+1; j<n; j++){
            if(v[i] < v[j] and maxim < L[j]){
                maxim = L[j];
            }
        }
        L[i] = maxim + 1;
        if(maxx < L[i]){
            maxx = L[i];
            t = i;
        }
    }
    cout<<maxx<<'\n';

    for(int i=t; i<n; i++){
       if(L[i] == maxx){
            cout<<v[i]<<' ';
            maxx--;
       }
    }

}


int main(){
    cin>>n;
    for(int i=0; i<n; i++)
        cin>>v[i];
    Rezolvare();

    return 0;
}