Submission #516246

#TimeUsernameProblemLanguageResultExecution timeMemory
516246thomas_liExhibition (JOI19_ho_t2)C++17
0 / 100
0 ms312 KiB
#include <bits/stdc++.h>
using namespace std;
const int MM = 1e5+5;
int main(){
	cin.tie(0)->sync_with_stdio(0);
	int n,m,ans = 0; cin >> n >> m;
	vector<array<int,2>> a; vector<int> b;
	for(int i = 0; i < n; i++){
		int s,v; cin >> s >> v;
		a.push_back({s,v});
	}
	sort(a.begin(),a.end());	
	for(int j = 0; j < m; j++){
		int c; cin >> c;
		b.emplace_back(c);
	}
	sort(b.begin(),b.end());						
	multiset<int> st;
	for(int i = 0; i < n; i++){
		if(a[i][0] <= b[m-1]){
			st.insert(a[i][1]);
		}
	}
	for(int j = m-1, i = n-1; j >= 0; j--){
		while(i >= 0 && a[i][0] > b[j]){
			if(st.find(a[i][1]) != st.end()) st.erase(st.find(a[i][1]));
			i--;
		}
		if(st.empty()) break;
		ans++;		
		//cout << j << " " << *(--st.end()) << "\n";
		st.erase(--st.end());
	}
	cout << ans << "\n";
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...