Cod sursa(job #2393191)

Utilizator blasterzMircea Dima blasterz Data 30 martie 2019 23:19:22
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

vector<int> longestIncreasingSubsequence(vector<int> &nums) {
    vector<int> a;
    for (auto v : nums) {
        auto it = lower_bound(a.begin(), a.end(), v);
        if (it == a.end()) {
            a.push_back(v);
        } else {
            *it = v;
        }
    }
    return a;
}

int main() {
    freopen("scmax.in", "r", stdin);
    freopen("scmax.out", "w", stdout);

    int n;
    cin >> n;
    vector<int> a(n);
    for (int i = 0; i < n; ++i)
        cin >> a[i];
    auto res = longestIncreasingSubsequence(a);
    cout << res.size() << endl;
    for (auto v : res)
        cout << v << " ";
    cout << endl;
}