Pagini recente » Cod sursa (job #3199606) | Cod sursa (job #595911) | Cod sursa (job #1237935) | Cod sursa (job #147373) | Cod sursa (job #708848)
Cod sursa(job #708848)
#include<fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,nr,v[100001],val[100001],best[100001],i,aux;
inline void caut_binar()
{int step;
for (step=1;step<nr;step<<=1);
for (aux=0;step;step>>=1)
if (aux+step<nr && val[aux+step]<= v[i])
aux += step;
}
int main()
{ fin >> n;
for (i=1;i<=n;++i)
fin >> v[i];
for (i=1;i<=n;++i)
{ if (v[i] > val[nr])
{ val[++nr] = v[i];
best[i] = nr;
}
else
{ caut_binar();
if (val[aux] != v[i])
{ ++aux;
val[aux] = v[i];
best[i] = aux;
}
else
best[i] = aux;
}
}
fout << nr;
return 0;
}