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