Pagini recente » Cod sursa (job #2267272) | Cod sursa (job #2556708) | Cod sursa (job #131669) | Cod sursa (job #2760505) | Cod sursa (job #1254311)
#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("%d",&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",lungime);
for (int i=1;i<=lungime;i++)
printf("%d ",V[i]);
}