Cod sursa(job #3346278)

Utilizator bandyAndrei Raileanu Szeles bandy Data 13 martie 2026 08:49:19
Problema Subsir crescator maximal Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

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

vector<int> v;
vector<int> pos;
vector<int> sol;
int maxl=0;

int main() {
    int n;
    in >> n;
    for (int i = 1; i <= n; i++) {
        int x;
        in >> x;
        if (v.empty() || x>v[v.size()-1]) {
            v.push_back(x);
            pos.push_back(v.size());
        }
        else {
            int k=upper_bound(v.begin(),v.end(),x)-v.begin();
            v[k]=x;
            pos.push_back(k);
        }
        if (pos[pos.size()-1]>maxl) {
            maxl=pos[pos.size()-1];
            sol=v;
        }
    }
    out<<maxl<<'\n';
    for (int j=0;j<sol.size();j++) {
        out<<sol[j]<<' ';
    }
    return 0;
}