Mai intai trebuie sa te autentifici.

Cod sursa(job #2485846)

Utilizator mihnea_toaderToader Mihnea mihnea_toader Data 2 noiembrie 2019 10:02:15
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

int e[100000], p[100000], k=0, l=0;

int cautbin (int x)
{
    int step,i;

    for (step=1; step<k; step <<= 1);

    for (i=k; step; step >>= 1)
        if (i-step>=0&&e[i-step]>=x)
            i-=step;

    return i;

}

int main()
{
    int n,x;

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

    fin>>n;

    for (int i=0; i<n; i++)
    {
        fin>>x;
        if (x>e[k])
        {
            e[++k]=x;
            p[++l]=k;
        }
        else
        {
            int poz=cautbin(x);
            e[poz]=x;
            p[++l]=poz;
        }

    }

    fout<<k<<"\n";

    for (int i=1; i<=k; i++)
        fout<<e[i]<<" ";

    return 0;

}