Pagini recente » Cod sursa (job #25408) | Cod sursa (job #2770756) | Cod sursa (job #1221154) | Cod sursa (job #1887996) | Cod sursa (job #1000324)
#include<stdio.h>
#include<algorithm>
using namespace std;
int v[100002],s[100002],poz[100002],sol[100002];
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
int n,i,aux,l=0;
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",&v[i]);
for(i=1;i<=n;++i)
{
aux=lower_bound(s+1,s+1+l,v[i])-s;
poz[i]=aux;
s[aux]=v[i];
if(aux>l)
l=aux;
}
aux=l;
printf("%d\n",l);
for(i=n;aux;--i)
if(poz[i]==aux)
{
sol[aux]=v[i];
--aux;
}
for(i=1;i<=l;++i)
printf("%d ",sol[i]);
printf("\n");
return 0;
}