nlog的LIS
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 1e5 + 10;
int n, ans, a[maxn], b[maxn];
int main() {
while (cin >> n) {
ans = 1;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
int cnt = 0;
b[++cnt] = a[1];
for (int i = 2; i <= n; i++) {
if (b[cnt] < a[i]) {
b[++cnt] = a[i];
}
else {
int pos = lower_bound(b + 1, b + 1 + cnt, a[i]) - b;
b[pos] = a[i];
}
}
cout << cnt << endl;
}
return 0;
}