Submission #1319842

#TimeUsernameProblemLanguageResultExecution timeMemory
1319842hanguyendanghuyGym Badges (NOI22_gymbadges)C++20
24 / 100
113 ms12468 KiB
#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;
        }
    }
    cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...