#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <set>
#include <stack>
#include <cstdint>
#define int long long
using namespace std;
const int NMAX=5e5;
int n, cnt;
set <int> setul;
struct what
{
int x, l;
} gym[NMAX+5];
int32_t main ()
{
ios :: sync_with_stdio (0);
cin.tie (nullptr);
cin >> n;
for (int i=1;i<=n;i++)
{
cin >> gym[i].x;
}
for (int i=1;i<=n;i++)
{
cin >> gym[i].l;
}
sort (gym+1, gym+n+1, [] (what a, what b) {return a.l<b.l;});
int s=0;
for (int i=1;i<=n;i++)
{
if (s<=gym[i].l)
{
s+=gym[i].x;
setul.insert (gym[i].x);
}
else
{
auto itr=setul.end();
--itr;
int val=*itr;
if (val>gym[i].x)
{
s-=val;
s+=gym[i].x;
setul.erase (val);
setul.insert (gym[i].x);
}
}
}
cout << setul.size();
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... |