#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 time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |