#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int q;
cin >> q;
vector<int> seq;
for (int i = 0; i < q; ++i) {
int pos, x;
cin >> pos >> x;
// Insert x at the (pos - 1) index
seq.insert(seq.begin() + (pos - 1), x);
// Compute LIS using patience sorting method (O(n log n))
vector<int> lis;
for (int num : seq) {
auto it = lower_bound(lis.begin(), lis.end(), num);
if (it == lis.end()) {
lis.push_back(num);
} else {
*it = num;
}
}
cout << lis.size() << '\n';
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |