Pagini recente » Cod sursa (job #268376) | Cod sursa (job #1029242) | Cod sursa (job #1003976) | Cod sursa (job #2781374) | Cod sursa (job #268467)
Cod sursa(job #268467)
#include <stdio.h>
long n,i,v[100001],p[100001],l[100001],j,max,first;
int main()
{
freopen("subsir2.in","r",stdin);
freopen("subsir2.out","w",stdout);
scanf("%ld",&n);
for(i=1;i<=n;i++)
scanf("%ld",&v[i]);
first=n;
p[n]=-1;
l[n]=1;
for(i=n-1;i>=1;i--)
{
l[i]=1;
p[i]=-1;
for(j=i+1;j<=n;j++)
{
if((v[i]<=v[j]) && (l[i]<=l[j]+1)){
p[i]=j;
l[i]=l[j]+1;
}
}
if(l[i]>max){ max=l[i];
first=i;
}
}
printf("%ld\n",max);
i=first;
while(p[i]!=-1)
{
printf("%ld ",v[i]);
i=p[i];
}
printf("%ld",v[i]);
return 0;
}