Cod sursa(job #1515923)

Utilizator Pantazescu.VladPantazescu Vlad Pantazescu.Vlad Data 2 noiembrie 2015 13:44:52
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,v[100001],a[100001];
void citire(){
    f>>n;
    for(int i=1;i<=n;++i){
            f>>v[i];
            a[i]=1;
    }
}
void pd(){
    int pmax=n,lmax=1;
    for(int i=n-1;i>=1;--i){
        int k=0;
        for(int j=i+1;j<=n;++j)
            if(v[j]>v[i]&&a[j]>k)k=a[j];
        a[i]+=k;
        if(a[i]>lmax){
                lmax=a[i];
                pmax=i;
        }
    }
    g<<lmax<<'\n';int x=v[pmax];
    for(int i=pmax;lmax>0;i++){
            if(a[i]==lmax&&v[i]>=x){
                    g<<v[i]<<' ';
                    x=v[i];
                    lmax--;
            }
        }
    for(int i=1;i<=n;++i){
            f>>v[i];
            a[i]=1;
    }
}
int main(){
    citire();
    pd();
    g.close();
    return 0;
}