Cod sursa(job #3192645)

Utilizator vlad231Gheorghica Istrate David vlad231 Data 13 ianuarie 2024 09:30:40
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <vector>
#include <iostream>

using namespace std;
int n,x,size_;
vector <int>v,ans;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
void calc_LIS(){
    if(v.size()==1)
        fout<<1<<'\n';
    ans.push_back(v[0]);
    for(int i=1;i<n;i++){
        if(v[i]>ans.back()){
            ans.push_back(v[i]);
        } else{
            int low=lower_bound(ans.begin(),ans.end(),v[i])-ans.begin();
            ans[low]=v[i];
        }
    }
}
int main() {
    fin>>n;
    for(int i=0;i<n;i++){
        fin>>x;
        v.push_back(x);
    }
    calc_LIS();
    fout<<ans.size()<<'\n';
    for(auto a:ans){
        fout<<a<<" ";
    }
    return 0;
}