Cod sursa(job #2036572)

Utilizator GeoeyMexicanuBadita George GeoeyMexicanu Data 10 octombrie 2017 20:20:19
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

int v[100010],a[100010],b[100010],p[100010],i,j,n,m,bst,mij,L,lo,hi;
ifstream f("scmax.in");
ofstream g("scmax.out");
void afisare(int k)
{
    if(k==0)
    {
        g<<L<<'\n';
        return;
    }
    afisare(b[k]);
    g<<a[k]<<' ';
}
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>a[i];
        lo=0;
        hi=L+1;
        while(hi-lo>1)
        {
            mij=(lo+hi)/2;
            if(v[mij]<a[i])
                lo=mij;
            else
                hi=mij;
        }
        if(hi==L+1)
            L++;
        v[hi]=a[i];
        p[hi]=i;
        b[i]=p[lo];
    }
    afisare(p[L]);
}