Pagini recente » Cod sursa (job #1711692) | Cod sursa (job #2855535) | Cod sursa (job #1567421) | Cod sursa (job #1217950) | Cod sursa (job #298387)
Cod sursa(job #298387)
#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 (i=max;q[poz];i--) {nr[i]=v[poz];poz=q[poz];}nr[1]=v[poz];
for (i=1;i<=max;i++) printf("%ld ",nr[i]);
/*q[1]=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]);
*/
return 0;}