Cod sursa(job #2304541)

Utilizator Bogdan_BuzatuBuzatu Bogdan Mihai Bogdan_Buzatu Data 18 decembrie 2018 10:23:31
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>

using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,poz,maxim,l[100001],v[100001],t[100001],x,sol[100001],s;
int main(){

    fin>>n;
    for(int i=1;i<=n;i++){
        fin>>v[i];
    }
    l[1]=1;
    v[n+1]=2000000000;
    for(int i=2;i<=n+1;i++){
        maxim=-1;
        for(int j=1;j<=i;j++){
            if(v[i]>v[j] && l[j]>maxim ){
                maxim=l[j];
                poz=j;
            }
        }
        if(maxim!=-1){
            l[i]=1+maxim;
            t[i]=poz;
        }
        else{
            l[i]=1;
            t[i]=0;
        }
    }

    x=n+1;
    fout<<l[x]-1<<"\n";
    while(t[x]!=0){
        s++;
        sol[s]=v[t[x]];
        x=t[x];
    }
    for(int i=s;i>=1;i--){
        fout<<sol[i]<<" ";
    }

}