Cod sursa(job #1408183)

Utilizator cypry97Dascalitei Ciprian cypry97 Data 29 martie 2015 21:35:26
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

ifstream in("scmax.in");
ofstream out("scmax.out");

int N;
int LMAX;
int MIN[100008];

void citire()
{
    in>>N;
}

void rezolvare()
{
    int i,a;
    int pos;
    LMAX=1;
    in>>MIN[1];
    for(i=2;i<=N;i++)
    {
        in>>a;
        pos=lower_bound(MIN,MIN+LMAX+1,a)-MIN-1;
        if(pos>=LMAX)
        {
            pos=LMAX;
            LMAX++;
            MIN[pos+1]=a;
        }
        else
            MIN[pos+1]=min(MIN[pos+1],a);
    }
}

void afisare()
{
    out<<LMAX<<'\n';
    for(int i=1; i<=LMAX; i++)
        out<<MIN[i]<<' ';
}

int main()
{
    citire();
    rezolvare();
    afisare();
    return 0;
}