Cod sursa(job #2283630)

Utilizator mihnea_toaderToader Mihnea mihnea_toader Data 15 noiembrie 2018 18:22:37
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
//cautare binara fututa
#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 if (x!=e[k])
        {
            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;
}