Cod sursa(job #1260467)

Utilizator MihneaGhiraMihnea MihneaGhira Data 11 noiembrie 2014 12:39:54
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,i,maxim,j,P,k,M;
int v[100001],L[100001],T[100001],sol[100001];

void drum(int P){
    if(P!=0){
        drum(T[P]);
        fout<<v[P]<<" ";
    }
}

int main(){
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>v[i];
    L[1]=1;
    for(i=2;i<=n;i++){
        maxim=0;
        for(j=1;j<i;j++){
            if(v[i]>v[j] && L[j]>maxim){
                maxim=L[j];
                P=j;
            }
        }
        if(maxim!=0){
            T[i]=P;
        }
        L[i]=1+maxim;
    }

    for(i=1;i<=n;i++)
        if(L[i]>M){
            M=L[i];
            P=i;
        }
    fout<<M<<"\n";
    drum(P);
    return 0;
}