Submission #1177561

#TimeUsernameProblemLanguageResultExecution timeMemory
1177561VMaksimoski008Gym Badges (NOI22_gymbadges)C++20
100 / 100
264 ms6564 KiB
#include <bits/stdc++.h>
#define ar array

using namespace std;
using ll = long long;

bool cmp(ar<int, 2> a, ar<int, 2> b) {
    return a[0] + a[1] < b[0] + b[1];
}

signed main() {
    int n; cin >> n;
    vector<ar<int, 2> > a(n+1);
    for(int i=1; i<=n; i++) cin >> a[i][0];
    for(int i=1; i<=n; i++) cin >> a[i][1];
    sort(a.begin()+1, a.end(), cmp);

    ll ans = 0, sum = 0;
    priority_queue<int> pq;

    for(int i=1; i<=n; i++) {
        if(sum <= a[i][1]) {
            ans++;
            sum += a[i][0];
            pq.push(a[i][0]);
        } else if(pq.top() > a[i][0]) {
            sum += a[i][0] - pq.top();
            pq.pop();
            pq.push(a[i][0]);
        }
    }

    cout << ans << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...