Cod sursa(job #2027416)

Utilizator sergiudnyTritean Sergiu sergiudny Data 26 septembrie 2017 08:33:21
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <bits/stdc++.h>
#define DM 100005
#define zeros(x) (x&(-x))
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");

int v[DM],ind[DM],l[DM],n,mx=1,st=1;

void afis(int i){
    if(v[i]!=v[ind[i]])
        afis(ind[i]);
    fout<<v[i]<<" ";
}

int main(){
    fin>>n;
    for(int i=1;i<=n;++i){
        fin>>v[i];
        ind[i]=i,l[i]=1;
        for(int j=i-1;j;--j)
            if(v[j]<v[i] && l[j]+1>l[i]){
                l[i]=l[j]+1,ind[i]=j;
                if(l[i]>mx)
                    mx=l[i],st=i;
            }
    }
    fout<<mx<<'\n';
    afis(st);
    return 0;
}