Pagini recente » Cod sursa (job #2088156) | Cod sursa (job #2224164) | Cod sursa (job #2328947) | Cod sursa (job #1899989) | Cod sursa (job #194800)
Cod sursa(job #194800)
# include <cstdio>
const int N=1000005;
int n,v[N],lung[N],pred[N];
void read(){
int i;
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i)
scanf("%d",&v[i]);
}
int max(int x){
int i,max=0,j=0;
for (i=1;i<x;++i)
if (lung[i]>max&&v[i]<v[x]){
j=i;
max=lung[i];
}
return j;
}
void write(int x){
if (pred[x])
write(pred[x]);
printf("%d ",v[x]);
}
void rezolva(){
int i,j;
lung[0]=0;
v[n+1]=2000000001;
for (i=1;i<=n;++i){
j=max(i);
lung[i]=lung[j]+1;
pred[i]=j;
}
j=max(n+1);
printf("%d\n",lung[j]);
write(j);
printf("\n");
}
int main(){
read();
rezolva();
}