Cod sursa(job #3275882)

Utilizator mihai_bosIancu Mihai mihai_bos Data 11 februarie 2025 21:24:38
Problema Subsir crescator maximal Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <stack>

using namespace std;

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

int n, x, k, v[100200], poz[100200], org[100200];
stack<int> st;

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> x;
        org[i] = x;

        int pos = lower_bound(v + 1, v + k + 1, x) - v;
        v[pos] = x;
        poz[i] = pos;
        if(pos > k)
            k = pos;

    }

    cout << k << '\n';

    for (int i = n; i >= 1; i--)
        if (poz[i] == k)
            st.push(org[i]), k--;

    while (!st.empty())
    {
        cout << st.top() << ' ';
        st.pop();
    }

    return 0;
}