Pagini recente » Cod sursa (job #2633911) | Cod sursa (job #125152) | Cod sursa (job #281455) | Cod sursa (job #457132) | Cod sursa (job #1739245)
#include<stdio.h>
using namespace std;
FILE *f1=fopen("scmax.in","r");
FILE *f2=fopen("scmax.out","w");
int a[100001],n,i,L[100001],maxs,t[100001],j;
int main(){
fscanf(f1,"%d",&n);
for (i=1;i<=n;i++)
fscanf(f1,"%d",&a[i]);
fclose(f1);
L[n]=1;
for (i=n-1;i>=1;i--){
maxs=0;
for (j=i+1;j<=n;j++)
if (a[i]<a[j] && maxs<L[j]){
maxs=L[j];
t[i]=j;
}
L[i]=1+maxs;
}
maxs=-1;
for (i=1;i<=n;i++)
if (maxs<L[i]) {
maxs=L[i];
j=i;
}
fprintf(f2,"%d\n",maxs);
while(j!=0){
fprintf(f2,"%d ",a[j]);
j=t[j];
}
return 0;
}