Submission #1181418

#TimeUsernameProblemLanguageResultExecution timeMemory
1181418petezaExhibition (JOI19_ho_t2)C++20
0 / 100
0 ms524 KiB
#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 {
			auto it = upper_bound(cur.begin(), cur.end(), res);
            if(it == cur.end()) cur.push_back(res);
            else *it = res;
		}
	}
	cout << cur.size();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...