Cod sursa(job #2146296)

Utilizator cc4infinityCojocaru Catalin cc4infinity Data 27 februarie 2018 21:54:28
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;
int x[100010],M[100010],k,mid,p[100010],i,j,l,r,n,L;
int main()
{
    ifstream fin("scmax.in");
    ofstream fout("scmax.out");
    fin>>n;
    for (i=1;i<=n;i++)
    {
        fin>>x[i];
        l=1;
        r=L;
        while (l<=r)
        {
            mid=(l+r)/2;
            if (x[M[mid]]<x[i]) l=mid+1; else r=mid-1;
        }
        M[l]=i;
        p[i]=M[l-1];
        if (l>L) L=l;
    }
    fout<<L<<"\n";
    k=M[L];
     for (i=1;i<=L;i++)
     {
         M[i]=x[k];
         k=p[k];
     }
     for (i=L;i>=1;i--)
        fout<<M[i]<<" ";
    return 0;
}