Submission #1153981

#TimeUsernameProblemLanguageResultExecution timeMemory
1153981AndrijaMGym Badges (NOI22_gymbadges)C++20
100 / 100
117 ms12480 KiB
#include<bits/stdc++.h>

using namespace std;

#define int long long
#define endl '\n'

const int maxn=5e5+10;

struct S
{
    int x;
    int l;
};
S a[maxn];

bool cmp(S a,S b)
{
    if(a.l==b.l)
    {
        return a.x<b.x;
    }
    return a.l<b.l;
}

signed main()
{
    ios::sync_with_stdio(0);
    int n;
    cin>>n;
    priority_queue<int>Q;
    for(int i=0;i<n;i++)
    {
        cin>>a[i].x;
    }
    for(int i=0;i<n;i++)
    {
        cin>>a[i].l;
        a[i].l+=a[i].x;
    }
    sort(a,a+n,cmp);
    int sum=0;
    for(int i=0;i<n;i++)
    {
        ///cout<<a[i].x<<" "<<a[i].l<<endl;
        if(sum+a[i].x<=a[i].l)
        {
            sum+=a[i].x;
            Q.push(a[i].x);
            continue;
        }
        int mx=Q.top();
        if(mx>a[i].x)
        {
            Q.pop();
            Q.push(a[i].x);
            sum-=mx;
            sum+=a[i].x;
        }
    }
    cout<<Q.size()<<endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...