#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... |