Pagini recente » Cod sursa (job #2066988) | Cod sursa (job #2866954) | Cod sursa (job #168107) | Cod sursa (job #1323327) | Cod sursa (job #1364346)
#include <cstdio>
using namespace std;
int n,i,j,k,v[100010],pz[100010],a[100010];
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
v[1]=a[n];
k=1;
for(i=n-1;i>=1;i--)
{
for(j=k;j>=1;j--)
if(a[i]<a[v[j]])
{
pz[i]=v[j];
j++;
v[j]=i;
if(j>k)k=j;
break;
}
if(j==0)
v[1]=i;
}
printf("%d\n",k);
// k=v[k];
printf("%d ",a[v[k]]);
k=v[k];
while(pz[k])
{
printf("%d ",a[pz[k]]);
k=pz[k];
}
return 0;
}