Cod sursa(job #2271466)

Utilizator joy333Steluta Talpau joy333 Data 28 octombrie 2018 17:38:50
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("scmax.in");
ifstream fout("scmax.out");

void sc_max(vector<int>sir){
    vector<int>aux;
    aux.push_back(1);
    int max_value=INT_MIN;
    for(int i=1; i<sir.size();i++){
        int curent=1;
        for(int j=0; j<i;j++){
            if(sir[i]>sir[j]){
                curent=max(aux[j]+1,curent);
            }

        }
        aux.push_back(curent);
        if(curent>max_value){
            max_value=curent;
        }
    }
    vector<int>answer;
    int next=max_value;
    for(int i=aux.size()-1;i>=0;i--){
        if(aux[i]==next){
            answer.push_back(sir[i]);
            next=next-1;
        }
    }
    cout<<max_value<< "\n";
    for(int i=answer.size()-1;i>=0;i--){
        cout<<answer[i]<<" ";
    }

}

int main()
{
    int n;
    vector<int>sir;
    fin>>n;
    int aux;
    for(int i=0; i<n;i++){
        fin>>aux;
        sir.push_back(aux);
    }
    sc_max(sir);
    return 0;
}