Submission #1264319

#TimeUsernameProblemLanguageResultExecution timeMemory
1264319witek_cppExhibition (JOI19_ho_t2)C++20
100 / 100
38 ms1608 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
typedef long long ll;

#define st first
#define nd second
#define f(a, c, b) for (int a = c; b > a; a++)
#define pb push_back
#define all(a) a.begin(), a.end()
#define wczytaj(a, c, n) a.resize(n); f(i, c, n) cin >> a[i];
#define sz(a) int(a.size())
#define wypisz(a, c) f(i, c, sz(a)) cout << a[i] << " "; cout << "\n";

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	int n, m;
	cin >> n >> m;
	vector<pair<int, int>> obrazy(n);
	f(i, 0, n) cin >> obrazy[i].nd >> obrazy[i].st;
	sort(all(obrazy));
	vector<int> ramki(m);
	f(i, 0, m) cin >> ramki[i];
	sort(all(ramki));
	int l = 0;
	int r = min(m, n);
	int mid;
	while (r > l) {
		mid = (r + l+1)/2;
		int ind_ramki = m- mid;
		f(i, 0, n) {
			if (obrazy[i].nd <= ramki[ind_ramki]) {
				ind_ramki++;
				if (ind_ramki == m) {
					break;
				}
			}
		}
		if (ind_ramki == m) {
			l = mid;
		} else {
			r = mid - 1;
		}
	}
	cout << r;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...