Cod sursa(job #2148117)

Utilizator ABBogdanBaicu Bogdan ABBogdan Data 1 martie 2018 15:38:33
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int a[100001],m[100001],k,mid,b[100001],i,j,ls,ld,n,l;
int main()
{

    f>>n;l=0;
    for (i=1;i<=n;i++)
    {
        f>>a[i];
        ls=1;
        ld=l;
        while (ls<=ld)
        {
            mid=(ls+ld)/2;
            if (a[m[mid]]<a[i]) ls=mid+1; else ld=mid-1;
        }
        m[ls]=i;
        b[i]=m[ls-1];
        if (ls>l) l=ls;
    }
    g<<l<<"\n";
    k=m[l];
     for (i=1;i<=l;i++)
     {
         m[i]=a[k];
         k=b[k];
     }
     for (i=l;i>=1;i--)
        g<<m[i]<<" ";
    return 0;
}