Cod sursa(job #850111)

Utilizator Bogdan13Bogdan Stoian Bogdan13 Data 7 ianuarie 2013 23:37:24
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#define NMAX 100005
using namespace std;

ifstream f("scm.in");
ofstream g("scm.out");

int N,Lmax;
long V[NMAX],L[NMAX],idx[NMAX],afis[NMAX],poz;

int main()
{
    f>>N;

    for (int i=1;i<=N;i++)
    f>>V[i];

    for (int i=1;i<=N;i++)
    {   L[i]=1;

        for (int j=i-1;j>=1;j--)
        if (V[i]>V[j]&&L[j]+1>L[i]) {L[i]=L[j]+1;
                                     idx[i]=j;
                                     if (L[i]>Lmax){Lmax=L[i];poz=i;}
                                    }
    }

    g<<Lmax<<"\n";

    int aux=Lmax;
    afis[Lmax]=poz;
    while(Lmax>1)
    {
        Lmax--;
        afis[Lmax]=idx[poz];
        poz=afis[Lmax];
    }

    for (int i=1;i<=aux;i++)
    g<<V[afis[i]]<<" ";

    return 0;
}