Pagini recente » Cod sursa (job #3268870) | Cod sursa (job #1935977) | Cod sursa (job #2879144) | Cod sursa (job #1386434) | Cod sursa (job #391192)
Cod sursa(job #391192)
#include<stdio.h>
#define DIM 100005
int n;
long long b[DIM],vf;
void solve (long long nr)
{
long long st=1,dr=vf,mij,max=0;
while(st<=dr)
{
mij=(st+dr)/2;
if(b[mij]<nr)
{
max=mij;
st=mij+1;
}
else
dr=mij-1;
}
if(max==vf)
b[++vf]=nr;
else if(b[max+1]>nr)
b[max+1]=nr;
}
int main ()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
int i;
long long nr;
scanf("%d",&n);
for(i=1;i<=n;++i)
{
scanf("%lld",&nr);
solve (nr);
}
printf("%lld\n",vf);
for(i=1;i<=vf;++i)
printf("%lld ",b[i]);
return 0;
}