Pagini recente » Cod sursa (job #428261) | Cod sursa (job #3121073) | Cod sursa (job #1169405) | Cod sursa (job #606221) | Cod sursa (job #387336)
Cod sursa(job #387336)
#include<stdio.h>
int n,a,maxg,c[100003],v[100003],prev[100003];
char uz[100003];
int main ()
{
int i,j;
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
for(j=maxg;j>=1;j--)
if(v[c[j]]<v[i])
break;
if(v[c[j+1]]>v[i] || j==maxg)
c[j+1]=i, prev[i]=c[j];
if(j==maxg)
maxg++;
}
printf("%d\n",maxg);
j=c[maxg];
for (i=maxg;i>0;i--)
{
uz[j]=1;
j=prev[j];
}
for(i=1;i<=n;i++)
if (uz[i])
printf("%d ",v[i]);
printf("\n");
return 0;
}