제출 #831182

#제출 시각아이디문제언어결과실행 시간메모리
831182OAleksaExhibition (JOI19_ho_t2)C++14
0 / 100
1 ms340 KiB
#include <bits/stdc++.h>
#define f first
#define s second
using namespace std; 
#define int long long
const int maxn = 1e5 + 69;
int n, m, s[maxn], v[maxn], c[maxn];

signed main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int tt = 1;
	//cin >> tt;
	while(tt--) {
		cin >> n >> m;
		for(int i = 0;i < n;i++) 
			cin >> s[i] >> v[i];
		for(int i = 0;i < m;i++)
			cin >> c[i];
		vector<int> ord(n);
		iota(ord.begin(), ord.end(), 0);
		sort(ord.begin(), ord.end(), [&](int i, int j) {
			return v[i] < v[j];
		});
		sort(c, c + m);
		int l = 1, r = m, ans = 0;
		auto check = [&](int mid) {
			int cnt = 0, p = mid;
			for(int i = 0;i < n;i++) {
				int j = ord[i];
				if(p > 0 && s[j] <= c[m - p]) 
					--p, ++cnt;
			}
			return cnt >= mid;
		};
		while(l <= r) {
			int mid = (l + r) / 2;
			if(check(mid)) {
				ans = mid;
				l = mid + 1;
			}
			else
				r = mid - 1;
		}
		cout << ans << "\n";
	}
   return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...