제출 #583163

#제출 시각아이디문제언어결과실행 시간메모리
583163stevancvExhibition (JOI19_ho_t2)C++14
100 / 100
68 ms5200 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define sp ' ' #define en '\n' #define smin(a, b) a = min(a, b) #define smax(a, b) a = max(a, b) using namespace std; const int N = 1e5 + 2; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; vector<pair<int, int>> a(n); for (int i = 0; i < n; i++) { cin >> a[i].first >> a[i].second; } sort(a.rbegin(), a.rend()); vector<int> b(m); for (int i = 0; i < m; i++) { cin >> b[i]; } sort(b.rbegin(), b.rend()); vector<int> bound(n); int j = 0; for (int i = 0; i < n; i++) { while (j < m && a[i].first <= b[j]) j++; bound[i] = j; swap(a[i].first, a[i].second); } vector<int> ord(n); iota(ord.begin(), ord.end(), 0); sort(ord.begin(), ord.end(), [&] (int i, int j) { if (a[i].first != a[j].first) return a[i].first > a[j].first; return a[i].second > a[j].second; }); int ans = 0; for (int i : ord) { if (bound[i] >= ans + 1) ans++; } cout << ans << en; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...