Cod sursa(job #901613)

Utilizator rughibemBelcineanu Alexandru Ioan rughibem Data 1 martie 2013 10:57:59
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<stdio.h>
FILE *f=fopen("scmax.in","r"), *g=fopen("scmax.out","w");

long int n, v[100005], l[100005], max=0, t;

void citire(){
long int i;
    fscanf(f,"%ld",&n);
    for(i=1;i<=n;i++){
        fscanf(f,"%ld",&v[i]);
    }
}

void pd(){
long int i, j, mx;

    l[n]=1;
    for(i=n-1;i>=1;i--){
        mx=0;
        for(j=i+1;j<=n;j++){
            if(v[j]>v[i] && l[j]>mx){mx=l[j];}
        }
        l[i]=mx+1;
        if(l[i]>max){max=l[i];t=i;}
    }
    fprintf(g,"%ld\n",max);
    fprintf(g,"%ld ",v[t]);
    for(i=t+1;i<=n;i++){
        if(v[i]>v[t] && l[i]==max-1){fprintf(g,"%ld ",v[i]);t=i;max--;}
    }

}

int main(){

    citire();
    pd();

return 0;
}