Cod sursa(job #2511262)

Utilizator cosmin395dimofte cosmin cosmin395 Data 18 decembrie 2019 17:25:29
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int n,i,j,jm,lgm,lg[100001],a[100001],urm[100001];
int main()
{
    cin>>n;
    for(i=1; i<=n; i++)
        cin>>a[i];
    ///pas1
    lg[n]=1;
    urm[n]=0;

    for(i=n-1; i>=1; i--)
    {
        lgm=jm=0;
        for(j=i+1; j<=n; j++)
            if(a[i]<a[j]&&lg[j]>lgm)
            {
                lgm=lg[j];
                jm=j;
            }
            lg[i]=lgm+1;
            urm[i]=jm;
    }
    lgm=0;
    for(i=1;i<=n;i++)
        if(lg[i]>lgm)
    {
        lgm=lg[i];
        jm=i;
    }
    cout<<lgm<<endl;;
    i=jm;
    do
    {
        cout<<a[i]<<' ';
        i=urm[i];
    }while(i);


    return 0;
}