Cod sursa(job #3297649)

Utilizator paulihno15Ciumandru Paul paulihno15 Data 23 mai 2025 11:31:55
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
#include <bits/stdc++.h>
#define NMAX 100000

using namespace std;

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

int n, x;
int cnt, sir[NMAX + 2];

int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(NULL);
    fout.tie(NULL);
    
    fin >> n;
    for (int i = 1; i <= n; i++) {
        fin >> x;
        if (!cnt) {
            cnt++;
            sir[cnt] = x;
        }
        else {
            if (x > sir[cnt]) {
                cnt++;
                sir[cnt] = x;
            }
            else {
                int st = 1, dr = cnt, poz;
                while (st <= dr) {
                    int mij = (st + dr) >> 1;
                    if (sir[mij] >= x) {
                        poz = mij;
                        dr = mij - 1;
                    }
                    else {
                        st = mij + 1;
                    }
                }
                sir[poz] = x;
            }
        }
    }
    
    fout << cnt << '\n';
    for (int i = 1; i <= cnt; i++) {
        fout << sir[i] << ' ';
    }
    return 0;
}