Cod sursa(job #3317761)

Utilizator liadariaLia Daria Ostafi liadaria Data 25 octombrie 2025 11:33:06
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#define NMAX 100002
using namespace std;
ifstream fin("sclm.in");
ofstream fout("sclm.out");
int n;
int a[NMAX];
int lgmax[NMAX];
int urm[NMAX];
int main()
{
    int i,j,maxim,pozurm,pozmax;
    fin>>n;
    for(i=1;i<=n;i++) fin>>a[i];
    lgmax[n]=1; urm[n]=0;
    for(i=n-1;i>=1;i--)
    {
        maxim=1; pozurm=0;
        for(j=i+1;j<=n;j++)
            if(a[i]<a[j] && maxim<1+lgmax[j])
            {
                maxim=1+lgmax[j]; pozurm=j;
            }
        lgmax[i]=maxim; urm[i]=pozurm;
    }
    maxim=lgmax[1]; pozmax=1;
    for(i=2;i<=n;i++)
    {
        if(lgmax[i]>maxim)
        {
            maxim=lgmax[i]; pozmax=i;
        }
    }
    fout<<maxim<<'\n';
    while(pozmax)
    {
        fout<<a[pozmax]<<' ';
        pozmax=urm[pozmax];
    }
    return 0;
}