#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |