Cod sursa(job #821784)

Utilizator alexblackFMI - Dumitrache Alexandru alexblack Data 22 noiembrie 2012 17:39:33
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("scmax.in");
ofstream out("scmax.out");
int const N=100005;
int v[N],ult[N],pred[N],n,u;
int cautb (int x)
{
    int poz=0;
    for(int i=1<<30;i>0;i>>=1)
        if((poz+i<=u)&&(v[ult[i+poz]]<x))
            poz+=i;
    return poz;
}
int main()
{
    in>>n;
    for(int i=1;i<=n;i++)
    {
        in>>v[i];
        int p = cautb(v[i]);
        ult[p+1]=i;
        if(p==u)    u++;
    }
    out<<u<<"\n";
    for(int i=1;i<=u;i++)
        out<<v[ult[i]]<<" ";
    out<<"\n";
    return 0;
}