Pagini recente » Cod sursa (job #1299051) | Cod sursa (job #3040525) | Cod sursa (job #1118833) | Cod sursa (job #1257549) | Cod sursa (job #900130)
Cod sursa(job #900130)
#include<stdio.h>
int x[100001],n,l[100001],i;
void cit(){
freopen("scmax.in","r",stdin);
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&x[i]);
fclose(stdin);
}
void pd(){
int i,j,max;
l[n]=1;
for(i=n-1;i>0;i--){
max=0;
for(j=i+1;j<=n;j++)
if(x[j]>x[i]&&l[j]>max)
max=l[j];
l[i]=max+1;
}
}
void afis(){
int i,j,poz,max=0,max1;
freopen("scmax.out","w",stdout);
for(i=1;i<=n;i++)
if(l[i]>max){
max=l[i];
poz=i;
}
printf("%d\n",max);
max1=max;
for(i=1;i<=max1;i++){
printf("%d ",x[poz]);
max--;
for(j=poz+1;j<=n;j++)
if(l[j]==max&&x[j]>x[poz])
break;
poz=j;
}
fclose(stdout);
}
int main(){
cit();
pd();
afis();
return 0;
}