Submission #1151166

#TimeUsernameProblemLanguageResultExecution timeMemory
1151166vicvicGym Badges (NOI22_gymbadges)C++20
100 / 100
115 ms12476 KiB
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <set>
#include <stack>
#include <cstdint>
#include <queue>
#define int long long
using namespace std;
const int NMAX=5e5;
int n, cnt;
priority_queue <int> coada;
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;
        gym[i].l+=gym[i].x;
    }
    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].x<=gym[i].l)
        {
            s+=gym[i].x;
            coada.push (gym[i].x);
        }
        else
        {
            int val=coada.top();
            if (val>gym[i].x)
            {
                s-=val;
                s+=gym[i].x;
                coada.pop ();
                coada.push (gym[i].x);
            }
        }
    }
    cout << coada.size();
    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...