#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define fi first
#define se second
#define all(x) x.begin(),x.end()
const ll MAXN=2e6+5,MOD=1e9+7,INF=1e18,MAXV=2e6;
ll i,n,m,j,k,p,dem,t,ans;
struct h{
ll a,b;
} a[MAXN];
bool cmp(h x,h y){
return x.a+x.b<y.a+y.b;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
// freopen("BIRD.inp","r",stdin);
// freopen("BIRD.out","w",stdout);
cin>>n;
for(i=1;i<=n;i++){
cin>>a[i].a;
}
for(i=1;i<=n;i++)
cin>>a[i].b;
sort(a+1,a+n+1,cmp);
priority_queue<ll> q;
ll cur=0,ans=0;
for(i=1;i<=n;i++){
if(cur<=a[i].b){
ans++;
cur+=a[i].a;
q.push(a[i].a);
}
else if(q.size()&&q.top()>=a[i].a){
cur-=q.top();q.pop();
cur+=a[i].a;
q.push(a[i].a);
}
}
cout<<ans;
}
| # | 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... |