#include <bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;
int n, m;
int main() {
cin.tie(0) -> sync_with_stdio(0);
cin >> n >> m;
vector<pii> v1(n);
for(auto &e:v1) cin >> e.second >> e.first;
sort(v1.begin(), v1.end(), [](pii a, pii b){
if(a.first != b.first)
return a.first < b.first;
return a.second > b.second;
});
reverse(v1.begin(), v1.end());
vector<int> costs(m);
for(auto &e:costs) cin >> e;
sort(costs.begin(), costs.end());
vector<int> cur;
for(auto &e:v1) {
int res = costs.end()-lower_bound(costs.begin(), costs.end(), e.second);
if(!res) continue;
if(res <= cur.size()) {
auto it = upper_bound(cur.begin(), cur.begin()+res, res);
if(it != cur.begin()+res) *it = res;
} else {
cur.push_back(res);
}
}
cout << cur.size();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |