Pagini recente » Cod sursa (job #928150) | Cod sursa (job #1461606) | Cod sursa (job #1863183) | Cod sursa (job #1083527) | Cod sursa (job #210798)
Cod sursa(job #210798)
#include<stdio.h>
int a[100001],b[100001],l[100001],prec[100001],n;
void solve(){
int i,j,max,maxx=0,poz,k,aux;
scanf("%d",&n);
for(i=1; i<=n; ++i)
scanf("%d",&a[i]);
for(i=1; i<=n; ++i){
max=0;
for(j=1; j<i; ++j)
if(a[j]<a[i])
if(l[j]>max){
max=l[j];
prec[i]=j;}
l[i]=max+1;
if(l[i]>maxx){
maxx=l[i];
poz=i;}}
b[maxx]=a[poz];
for(i=maxx-1; i>0; --i){
aux=prec[poz];
b[i]=a[aux];
poz=aux;}
printf("%d\n",maxx);
for(i=1; i<=maxx; ++i)
printf("%d ",b[i]);}
int main(){
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
solve();
return 0;}