Cod sursa(job #2447809)

Utilizator pishcotMiruna Turbatu pishcot Data 14 august 2019 18:10:10
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 n, a[100005];
int st[100005], top;

int cautbin(int x)
{
    int mij, l = 1, dr = top, poz = 1;
    while(l <= dr)
    {
        mij = (l + dr) / 2;
        if(st[mij] >= x)
        {
            poz = mij;
            dr = mij - 1;

        }
        else l = mij + 1;
    }
    return poz;
}

int main()
{

    fin >> n;
    for(int i = 1; i <= n; i++)
        fin >> a[i];

    for(int i = 1; i <= n; i++)
    {
        if(a[i] > st[top])
            st[++top] = a[i];
        else
        {
            st[cautbin(a[i])] = a[i];
        }
    }
    fout << top << "\n";
    for(int i = 1; i <= top; i++)
        fout << st[i] << " ";

    return 0;
}