Pagini recente » Cod sursa (job #2636620) | Cod sursa (job #604850) | Cod sursa (job #652808) | Cod sursa (job #933048) | Cod sursa (job #707976)
Cod sursa(job #707976)
#include <cstdio>
#define NMax 10001
long n,viz[NMax],urm[NMax],v[NMax],maxit,maxt,maxx,maxi;
int main()
{
freopen("scmax.in","rt",stdin);
freopen("scmax.out","wt",stdout);
scanf("%ld",&n);
for(long i=1;i<=n;i++)
scanf("%ld",&v[i]);
viz[n]=1;
for(long i=n-1;i>=1;i--)
{
maxx=0;
maxi=0;
for(long j=i+1;j<=n+1;j++)
if(v[j]>v[i]&&viz[j]>maxx)
maxx=viz[j],maxi=j;
viz[i]=maxx+1;
urm[i]=maxi;
if(viz[i]>maxt)
maxt=viz[i],maxit=i;
}
printf("%ld\n",maxt);
printf("%ld ",v[maxit]);
long x=urm[maxit];
while(x)
{
printf("%ld ",v[x]);
x=urm[x];
}
printf("\n");
return 0;
}