Pagini recente » Cod sursa (job #2569871) | Cod sursa (job #2160963) | Cod sursa (job #1787868) | Cod sursa (job #245137) | Cod sursa (job #177369)
Cod sursa(job #177369)
#include<cstdio>
int a[100001],i,x,nr,n;
inline int poz(int x)
{
int st=0,dr=nr,m;
while(st<dr)
{
m=(st+dr+1)>>1;
if(a[m]==x) return m-1;
if(a[m]<x) st=m;
else dr=m-1;
}
return st;
}
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
scanf("%d",&a[1]);nr=1;
while(--n)
{
scanf("%d",&x);
i=poz(x);
if(i+1>=nr || a[i+2]!=x)
{
a[i+1]=x;
if(i+1>nr) nr=i+1;
}
}
printf("%d\n",nr);
for(i=1;i<=nr;i++)
printf("%d ",a[i]);
fclose(stdout);
return 0;
}