Pagini recente » Cod sursa (job #2267684) | Cod sursa (job #347733) | Cod sursa (job #1076977) | Cod sursa (job #297870) | Cod sursa (job #356821)
Cod sursa(job #356821)
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
int a[100001],l[100001],n,m;
int max,i,j;
scanf("%ld",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
l[n-1]=1;
for(i=n-2;i>=0;i--)
{
for(j=i+1,max=0;j<n;j++)
if(a[j]>a[i])
if(max<l[j])
max=l[j];
l[i]=1+max;
}
for(max=0,i=0;i<n;i++)
if(max<l[i])max=l[i],m=i;
printf("%d\n%d",max,a[m]);
while(m<n&&l[m]!=1)
{
i=m+1;
while(!(l[m]-1==l[i]&&a[m]<a[i]))
i++;
printf(" %d",a[i]);
m=i;
}
return 0;
}