Cod sursa(job #1260469)

Utilizator robx12lnLinca Robert robx12ln Data 11 noiembrie 2014 12:40:58
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[100001],d[100001],t[100001],i,j,p,maxim,n;
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];
    }
    d[1]=1;
    t[1]=0;
    for(i=2;i<=n;i++){
        maxim=0;
        for(j=1;j<i;j++){
            if(v[i]>v[j] && d[j]>maxim){
                maxim=d[j];
                p=j;
            }
        }
        if(maxim!=0){
            t[i]=p;
        }else{
            t[i]=0;
        }
        d[i]=maxim+1;
    }
    maxim=-1;
    for(i=1;i<=n;i++){
        if(maxim<d[i]){
            maxim=d[i];
            p=i;
        }
    }
    fout<<maxim<<"\n";
    drum(p);
    return 0;
}