Submission #1179285

#TimeUsernameProblemLanguageResultExecution timeMemory
1179285jiahcGym Badges (NOI22_gymbadges)C++20
100 / 100
104 ms16520 KiB
// Source: https://usaco.guide/general/io // https://ide.usaco.guide/OM6xlbnXP1WD4A45uIV #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; const int N = 500010; int n, ans; struct gym { ll sum, l, x; bool operator <(const gym &W)const { return sum < W.sum; } }a[N]; priority_queue<ll, vector<ll>, less<ll> > q; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >> n; for (int i = 1; i <= n; i++) { ll x; cin >> x; a[i].sum = a[i].x = x; } for (int i = 1; i <= n; i++) { ll l; cin >> l; a[i].sum += l; a[i].l = l; } sort(a + 1, a + n + 1); ll s = 0; for (int i = 1; i <= n; i++) { if (s <= a[i].l) { s += a[i].x; ans++; q.push(a[i].x); } else { if (q.size() == 0) continue; if (a[i].x >= q.top()) continue; s -= q.top(); q.pop(); s += a[i].x; q.push(a[i].x); } } cout << ans << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...