Pagini recente » Istoria paginii runda/verificare/clasament | Cod sursa (job #3201730) | Cod sursa (job #1260226) | Cod sursa (job #1022495) | Cod sursa (job #298040)
Cod sursa(job #298040)
#include <stdio.h>
int main()
{long long int q[10000],n,poz,i,k,v[100000],nr[100000],max,j;
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; for (j=1;j<i;j++) if ((v[j]<v[i]) && (nr[j]>k)) k=nr[j];
nr[i]=k+1;
if (nr[i]>max) { max=nr[i]; poz=i; }
}
printf("%lld\n",max);
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;}