Submission #140798

#TimeUsernameProblemLanguageResultExecution timeMemory
140798meatrowExhibition (JOI19_ho_t2)C++17
100 / 100
967 ms9336 KiB
//#pragma GCC optimize("O3") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,tune=native") //#pragma GCC optimize ("unroll-loops") #include <bits/stdc++.h> using namespace std; using ll = long long; using ld = long double; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); 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.begin(), a.end()); vector<int> b(m); for (int i = 0; i < m; i++) { cin >> b[i]; } sort(b.begin(), b.end()); int l = 0, r = min(n, m) + 1; while (l + 1 < r) { int mid = (l + r) / 2; int prev = 0; multiset<int> s; int it = 0; bool f = true; for (int i = m - mid; i < m; i++) { while (it < n && a[it].first <= b[i]) { s.insert(a[it++].second); } auto kek = s.lower_bound(prev); if (kek != s.end()) { prev = *kek; s.erase(kek); } else { f = false; break; } } if (f) { l = mid; } else { r = mid; } } cout << l; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...