Cod sursa(job #2631836)

Utilizator Snake2003lalallalal Snake2003 Data 1 iulie 2020 13:07:43
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <bits/stdc++.h>
using namespace std;

//ifstream cin("sclm2.in");
//ofstream cout("sclm2.out");

int n, i, x, sclm[100001], v[2], fr[100001];

int main()
{
    int n;
    cin >> n;
    cin >> v[1];
    int k = 1;
    sclm[k] = v[1];
    for(int i = 2; i <= n; i ++)
    {
        cin >> x;
        if(fr[x] != 0)
            continue;
        else if(x > sclm[k] && fr[x] == 0)
        {
            sclm[++ k] = x;
            fr[x] ++;
        }
        else if(x < sclm[k] && fr[x] == 0){
            int upper = upper_bound(sclm + 1, sclm + k + 1, x) - sclm;
            sclm[upper] = x;
            fr[x] ++;
        }
    }
    cout << k << "\n";
    for(int i = 1; i <= k; i ++)
        cout << sclm[i] << " ";
    return 0;
}