Cod sursa(job #3228629)

Utilizator test1111fsf sfhs f hskfh 11 test1111 Data 9 mai 2024 11:27:37
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

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

int main() {
    int n; fin >> n;
    int a[n + 1];
    for (int i = 1; i <= n; i++) {
        fin >> a[i];
    }
    vector<int>v;
    for (int i = 1; i <= n; i++) {
        int l = 0, r = (int)v.size() - 1, where = -1;
        while (l <= r) {
            int mid = (l + r) >> 1;
            if (v[mid] >= a[i]) {
                where = mid;
                r = mid - 1;
            } else {
                l = mid + 1;
            }
        }
        if (i == 1 || v.back() < a[i]) {
            v.push_back(a[i]);
        } else {
            v[where] = a[i];
        }
    }
    fout << (int)v.size() << '\n';
    for (int x : v) {
        fout << x << " ";
    }
}