Pagini recente » Cod sursa (job #1110972) | Cod sursa (job #902844) | Cod sursa (job #1993836) | Cod sursa (job #1909112) | Cod sursa (job #2283630)
//cautare binara fututa
#include <iostream>
#include <fstream>
using namespace std;
int e[100000], p[100000], k=0, l=0;
int cautbin (int x)
{
int step,i;
for (step=1;step<k;step <<= 1);
for (i=k;step;step >>= 1)
if (i-step>=0&&e[i-step]>=x)
i-=step;
return i;
}
int main()
{
int n,x;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
fin>>n;
for (int i=0;i<n;i++)
{
fin>>x;
if (x>e[k])
{
e[++k]=x;
p[++l]=k;
}
else if (x!=e[k])
{
int poz=cautbin(x);
e[poz]=x;
p[++l]=poz;
}
}
fout<<k<<"\n";
for (int i=1;i<=k;i++)
fout<<e[i]<<" ";
return 0;
}