Submission #1257598

#TimeUsernameProblemLanguageResultExecution timeMemory
1257598bach25089Exhibition (JOI19_ho_t2)C++20
0 / 100
1095 ms320 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 100000 + 5; int n, m, s[MAXN], v[MAXN],c[MAXN]; pair<int,int> a[MAXN]; bool can(int k) { if (k == 0) return true; int mk = m - k; int p = 0; for (int i = 0; i < n && p < k; ++i) { if (a[i].first <= c[mk + p]) p++; } if(p == k)return true; else return false; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> m; for (int i = 0; i < n; ++i) { cin >> s[i] >> v[i]; a[i] = {s[i], v[i]}; } for (int j = 0; j < m; ++j) { cin >> c[j]; } sort(a, a + n, [](const pair<int,int>& p1, const pair<int,int>& p2) { if (p1.second != p2.second) return p1.second < p2.second; return p1.first < p2.first; }); sort(c, c + m); int l = 0, h = min(n, m); while (l < h) { int mid = (l + h) / 2; if (can(mid)) l = mid; else h = mid - 1; } cout << l ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...