Pagini recente » Cod sursa (job #3264988) | Cod sursa (job #1253523) | Cod sursa (job #2864012) | Cod sursa (job #3263895) | Cod sursa (job #568342)
Cod sursa(job #568342)
# include <fstream>
# include <iostream>
# define DIM 100003
using namespace std;
int n, v[DIM], l[DIM], lmax, p;
void f (int st, int dr, int x)
{
if (st==dr)
{
if (l[st]<x)
p=st;
return;
}
int mij=(st+dr)/2;
if (l[mij]<x)
{
p=mij;
f(mij+1, dr, x);
}
else
f(st, mij, x);
}
int main ()
{
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
fin>>n;
for(int i=1;i<=n;++i)
fin>>v[i];
for(int i=1;i<=n;++i)
{
f(0, lmax, v[i]);
if (l[p+1]==0)l[++lmax]=v[i];
else l[p+1]=v[i];
}
fout<<lmax<<"\n";
for(int i=1;i<=lmax;++i)
fout<<l[i]<<" ";
return 0;
}