Submission #1378853

#TimeUsernameProblemLanguageResultExecution timeMemory
1378853baodatExhibition (JOI19_ho_t2)C++20
100 / 100
30 ms1612 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long 
#define FOR(i, l, r) for(int i = l; i <= r; i++)
#define FORD(i, l, r) for(int i = l; i >= r; i--)
struct Art{
	int sz, value; //size, value
};
bool compare(const Art& a, const Art& b){
	return a.value > b.value || (a.value == b.value && a.sz > b.sz);
}
signed main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	int n, m;
	cin >> n >> m;
	vector<Art>a(n + 1);
	FOR(i, 1, n) cin >> a[i].sz >> a[i].value;
	vector<int>frame(m + 1);
	FOR(i, 1, m) cin >> frame[i];
	int ans = 0;
	sort(frame.begin() + 1, frame.end(), greater<int>());
	sort(a.begin() + 1, a.end(), compare);
	int ptr_art = 1, ptr_frame = 1;
	while(ptr_art <= n && ptr_frame <= m){
		if(a[ptr_art].sz <= frame[ptr_frame]){
			++ans;
			++ptr_art;
			++ptr_frame;
		}
		else{
			++ptr_art;
		}
	}
	cout << ans << "\n";
	return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...