Cod sursa(job #1102674)

Utilizator Eugen_VlasieFMI Vlasie Eugen Eugen_Vlasie Data 9 februarie 2014 14:32:06
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
long long m,j=1,d,i,n,x[100100],l,v[100100];
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
        while((j<<1)<=l)
            j<<=1;
        m=0;
        d=j;
        while(d)
        {
            if(m+d<=l&&v[i]>v[x[m+d]])
                m+=d;
            d>>=1;
        }
        if(m==l)
        {
            x[++l]=i;
        }
        else
        {
            if(v[i]<v[x[m+1]])
            {
                x[m+1]=i;
            }
        }
    }
    g<<l<<'\n';
    for(i=1;i<=l;i++)
        g<<v[x[i]]<<" ";
    g<<'\n';
    return 0;
}