#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> ii;
typedef long long ll;
int main(){
  int n; cin>>n;
  vector<ii> gym(n);
  for(auto &v:gym) cin>>v.first;
  for(auto &v:gym) cin>>v.second;
  sort(gym.begin(),gym.end(),[&](ii a,ii b){
    return a.first+a.second < b.first+b.second;
  });
  priority_queue<int> pq;
  int badge=0;
  ll level=0;
  for(auto &v:gym){
    if(level<=v.second){
      badge++;
      level+=v.first;
      pq.push(v.first);
    }
    else{
      if(pq.top()>v.first){
	level-=pq.top();
	level+=v.first;
	pq.pop();
	pq.push(v.first);
      }
    }
  }
  cout<<badge<<endl;
}
| # | 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... |