Pagini recente » Cod sursa (job #2102771) | Cod sursa (job #2847775) | Cod sursa (job #1318328) | Cod sursa (job #1899398) | Cod sursa (job #1254314)
#include <iostream>
#include <cstdio>
using namespace std;
int s,d,mij,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);
if (V[lungime]<a)
{
lungime++;
V[lungime]=a;
P[i]=lungime;
}
else
{
s=1;
d=lungime;
do
{
if (s==d)
{
V[s]=a;
P[i]=s;
}
else
{
mij=(s+d)/2;
if (V[i]<a) s=mij+1;
else if (V[i]>a) d=mij;
else break;
}
}
while (s!=d);
}
}
printf("%d\n",lungime);
for (int i=1;i<=lungime;i++)
printf("%d ",V[i]);
}