Pagini recente » Cod sursa (job #2936113) | Cod sursa (job #3144359) | Cod sursa (job #3276215) | Borderou de evaluare (job #737112) | Cod sursa (job #2943605)
#include <bits/stdc++.h>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
long long n, nr, a[100001], l[100001];
int main()
{
f >> n;
for(int i = 1; i <= n; i++)
f >> a[i];
nr = 1;
l[nr] = a[1];
for (int i = 2; i <= n; i++) {
if (a[i] >= l[nr]) {
l[++nr] = a[i];
}
else {
long long st = 1, dr = nr, poz = nr + 1, mij;
while (st <= dr) {
mij = (st + dr) / 2;
if (l[mij] > a[i]) {
poz = mij;
dr = mij - 1;
}
else
st = mij + 1;
}
l[poz] = a[i];
}
}
g << nr;
f.close();
g.close();
return 0;
}