Cod sursa(job #2173428)

Utilizator iuliandraceaDracea Iulian-Ilie iuliandracea Data 15 martie 2018 22:14:22
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
unsigned long long n,a[10000009],i,j,lmax,b[10000009],k,l,pmax,c[10000009];
int main()
{
    fin>>n;
    for(i=1;i<=n;i=i+1)
    {
        fin>>a[i];
    }
    lmax=1;
    for(i=1;i<=n;i=i+1)
    {
        if(a[i]>a[i-1])
        {
            b[i]=b[i-1]+1;
        }
        else
        {
            b[i]=1;
            for(j=i-1;j>0;j=j-1)
            {
                if(a[j]<a[i] && b[j]+1>b[i])
                {
                    b[i]=b[j]+1;
                }
            }
        }
        if(b[i]>lmax)
        {
            lmax=b[i];
            pmax=i;
        }
    }
    fout<<lmax<<"\n";
    l=a[pmax];
    for(i=pmax;i>0;i=i-1)
    {
        if(lmax-1==b[i] && l>a[i])
        {
            lmax=lmax-1;
            l=a[i];
            k=k+1;
            c[k]=l;
        }
    }
    for(i=k;i>0;i=i-1)
    {
        fout<<c[i]<<" ";
    }
    fout<<a[pmax];
    fin.close();
    fout.close();
    return 0;
}