Cod sursa(job #2208758)

Utilizator richard26Francu Richard richard26 Data 31 mai 2018 13:07:41
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("scmax.in") ;
ofstream g("scmax.out") ;

long long a[100001],l[100001],lmax,n ;

void lm()
{
    int i,maxi,j ;
    lmax=0 ;
    f>>n ;
    for(i=1;i<=n;i++) f>>a[i] ;
    l[n]=1 ;

    for(i=n-1;i>=1;i--)
    {
        maxi=0 ;
        for(j=i+1;j<=n;j++) if(l[j]>maxi&&a[i]<a[j]) maxi=l[j] ;
        l[i]=maxi+1 ;
        if(l[i]>lmax) lmax=l[i] ;

    }
    g<<lmax ;
}

void drum()
{
    int t, p ;
    t=0 ;
    p=1 ;
    while(lmax>0)
    {
        while(l[p]!=lmax||a[t]>a[p]) p++ ;
        g<<a[p]<<" " ;
        lmax-- ;
        t=p ;
    }
}
int main()
{
    lm() ;
    g<<endl ;
    drum() ;
    return 0;
}