Submission #1151100

#TimeUsernameProblemLanguageResultExecution timeMemory
1151100vicvicGym Badges (NOI22_gymbadges)C++20
0 / 100
63 ms4424 KiB
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <set>
#include <stack>
using namespace std;
const int NMAX=5e5;
int n, l[NMAX+5], x[NMAX+5], cnt;
set <int> setul;
pair <int, int> dp[NMAX+5];
struct what
{
    int x, l;
} gym[NMAX+5];
int 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...