Pagini recente » Cod sursa (job #1414330) | Cod sursa (job #409959) | Cod sursa (job #1844550) | Cod sursa (job #2047120) | Cod sursa (job #901613)
Cod sursa(job #901613)
#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;
}