Cod sursa(job #895348)

Utilizator razvanb87Razvan Buhaianu razvanb87 Data 27 februarie 2013 11:02:39
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,x[100000],l[100000],ant[100000];


void solutie (int p)
{
    if(p>=0)
    {
        solutie(ant[p]);
        out<<x[p]<<" ";
    }

}

int main()
{
    ifstream in("scmax.in");
ofstream out("scmax.out");

    in>>n;
    int i,lmax,a,p,j;
    for(i=0;i<n;i++)
        in>>x[i];
    in.close();
    for(i=0;i<n;i++)
    {
        lmax=0;a=-1;
        for(j=0;j<i;j++)
            if(x[i]>x[j])
                if(l[j]>lmax)
                {lmax=l[j];a=j;}
        l[i]=lmax+1;
        ant[i]=a;
    }
    lmax=0;p=0;
    for(i=0;i<n;i++)
        if(l[i]>lmax){lmax=l[i];p=i;}
    out<<lmax<<endl;
    solutie(p);
    out.close();
    return 0;
}