Cod sursa(job #1785929)

Utilizator Tyler_BMNIon Robert Gabriel Tyler_BMN Data 22 octombrie 2016 09:54:19
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>

using namespace std;
int a[100001],n,l[100001],lmax=0,imax=0;

void citire()
{
    ifstream fin("scmax.in");
    fin>>n;
    for(int i=0;i<n;i++)
        fin>>a[i];
}

void lungimi()
{
    for(int i=n-1;i>=0;i--)
    {
        int Max=0;
        for(int j=i+1;j<n;j++)
            if(a[j]>a[i])
            {
                Max=l[j];
                break;
            }
        l[i]=Max+1;
        if(l[i]>lmax)
        {
            lmax=l[i];
            imax=i;
        }
    }
}

void afisare()
{
    ofstream fout("scmax.out");

    fout<<lmax<<"\n"<<a[imax]<<" ";
    for(int i=imax+1,m=lmax;i<n;i++)
        if(l[i]=m-1)
            fout<<a[i++]<<" ";
}

int main()
{
    citire();
    lungimi();
    afisare();
    return 0;
}