Pagini recente » Cod sursa (job #10360) | Cod sursa (job #1009674) | Cod sursa (job #2186032) | Cod sursa (job #1909821) | Cod sursa (job #1254783)
#include <iostream>
#include <cstdio>
using namespace std;
int s,d,m,a,V[100000],P[100000],n,lungime;
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%ld",&n);
for (int i=1;i<=n;i++)
{
scanf("%d",&a);
//inserare
s=1;
d=lungime+1;
while (s!=d)
{
m=(s+d)/2;
if (V[m]<a) s=m+1;
else d=m;
}
if (d==lungime+1) {lungime++; V[lungime]=a;}
else {V[d]=a;}
}
printf("%d\n",lungime);
for (int i=1;i<=lungime;i++)
printf("%d ",V[i]);
}