Pagini recente » Cod sursa (job #879873) | Cod sursa (job #2513330) | Cod sursa (job #2041452) | Cod sursa (job #2592455) | Cod sursa (job #298385)
Cod sursa(job #298385)
#include <stdio.h>
int main()
{long long int pozi,n,poz,i,k,v[100000],nr[100000],max,j;
int q[100000];
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%lld",&n);
for (i=1;i<=n;i++) scanf("%lld",&v[i]);
max=0;
for (i=1;i<=n;i++)
{ k=0;q[i]=0; for (j=1;j<i;j++) if ((v[j]<v[i]) && (nr[j]>k)) { k=nr[j]; q[i]=j;}
nr[i]=k+1;
if (nr[i]>max) { max=nr[i]; poz=i; }
}
printf("%lld\n",max);
for (;q[poz];) {printf("%ld ",v[poz]);poz=q[poz];}printf("%ld",v[poz]);
/*n=max;
for (i=2;i<=n;i++)
{ k=0;
for (j=1;j<poz; j++) if ((v[j]<v[poz]) && (nr[j]>k)){ k=nr[j];max=j;}
//printf("%lld ",v[max]);
q[i]=v[max];
poz=max;
}
for (i=n;i>=1;i--) printf("%lld ",q[i]);*/
/*q[1]=100000;
printf("%d",q[1]);*/
return 0;}