Cod sursa(job #2192775)

Utilizator RaresANDCRares Andrei Codreanu RaresANDC Data 7 aprilie 2018 12:04:30
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

#define NMAX 100000

using namespace std;

ifstream fin ("scmax.in");
ofstream fout ("scmax.out");

int n,a[NMAX+5],s[NMAX+5],ok,lmax,nou[NMAX+5],m,aux;

int main()
{
    fin >> n;
    for(int i=1;i<=n;i++)
    {
        fin >> a[i];
        ok=0;
        m=0;
        for(int j=1;j<=i;j++)
        {
            if(a[i]>a[j] && s[j]>m){ok=1;m=s[j];}
        }
        if(ok==0)s[i]=1;
        else s[i]=m+1;
        if(s[i]>lmax)lmax=s[i];
    }


    fout << lmax << '\n' ;

    aux=lmax;
    for(int i=n;i>=1;i--)
    {
        if(s[i]==lmax)
        {
            nou[lmax]=a[i];
            lmax--;
        }
    }

    for(int i=1;i<=aux;i++)
        fout << nou[i] <<  ' ';


    return 0;
}