Cod sursa(job #1962785)

Utilizator ioanavasilescuIoana Vasilescu ioanavasilescu Data 12 aprilie 2017 08:33:30
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>

using namespace std;

int a[100010],l[100010],t[100010],scmax[100010];

int main()
{
    ifstream fin("scmax.in");
    ofstream fout("scmax.out");
    int n,i,k,kmax,lmax,imax,aux;
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>a[i];
    for(i=1;i<=n;i++)
    {
        kmax=0;
        for(k=1;k<=i;k++)
            if(a[k]<a[i]&&l[k]>l[kmax])kmax=k;
        l[i]=l[kmax]+1;
        t[i]=kmax;
    }
    lmax=0;
    for(i=1;i<=n;i++)
        if(l[i]>lmax)lmax=l[i],imax=i;
    aux=lmax;
    fout<<lmax<<"\n";
    for(i=imax;i>0;)
        scmax[aux--]=a[i],i=t[i];
    for(i=1;i<=lmax;i++)
        fout<<scmax[i]<<" ";
    return 0;
}