Cod sursa(job #1857344)

Utilizator leonard.david42Bereholschi Leonard David leonard.david42 Data 26 ianuarie 2017 08:32:41
Problema Subsir crescator maximal Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
long n,lmax,p,l[100000];
double a[100000];
void citire(long &n)
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>a[i];
}
void dinamica()
{
    int max;
    l[n]=1;
    for(int i=n-1;i>=1;i--)
    {
        max=0;
        for(int j=i+1;j<=n;j++)
            if(l[j]>max && a[i]<a[j])
                max=l[j];
        l[i]=max+1;
        if(lmax<l[i])
            lmax=l[i];
    }
}
void drum()
{
    int t=0;
    p=1;
    g<<lmax<<'\n';
    do{
        while(l[p]!=lmax || a[t]>a[p])
            p++;
        g<<a[p]<<" ";
        t=p;
        lmax--;
    }while(lmax);
}
int main()
{
    citire(n);
    dinamica();
    drum();
}