Cod sursa(job #1266187)

Utilizator AndyCatrunaCatruna Andy AndyCatruna Data 18 noiembrie 2014 14:14:38
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[100001],t[100001],l[100001],f[100001],n,poz=1,i,j,x,maxim,p,M,P;
void drum(int poz){
    if(t[poz]!=0){
        drum(t[poz]);}
        fout<<v[poz]<<" ";
}
int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
    }
    l[1]=1;t[1]=0;
    x=1;
    for(i=2;i<=n;i++){
        maxim=0;P=0;
        for(j=1;j<=i-1;j++){
            if(v[j]<v[i] && l[j]>maxim){
                maxim=l[j];
                P=j;
            }
        }
        l[i]=1+maxim;
        if(maxim!=0){
            t[i]=P;
        }

        if (l[i]>M){
            M=l[i];
            poz=i;
        }

    }
    fout<<M<<"\n";
    drum(poz);




    return 0;
}