Pagini recente » Cod sursa (job #2504771) | Cod sursa (job #1079065) | Cod sursa (job #2744961) | Cod sursa (job #1288565) | Cod sursa (job #1972149)
#include <cstdio>
#include <vector>
std:: vector<int> v;
int binarySearch(int x) {
int st = 0, dr = (int)v.size() - 1;
int last = -1;
while (st <= dr) {
int med = (st + dr) / 2;
if (v[med] <= x) {
dr = med - 1;
last = med;
} else {
st = med + 1;
}
}
return last;
}
int main() {
freopen("culmi.in", "r", stdin);
freopen("culmi.out", "w", stdout);
int N;
scanf("%d", &N);
for (int i = 0; i < N; ++i) {
int x;
scanf("%d", &x);
int bs = binarySearch(x);
if (bs == -1) {
v.push_back(x);
} else {
v[bs] = x;
}
}
printf("%d\n", (int)v.size());
return 0;
}