Submission #1335325

#TimeUsernameProblemLanguageResultExecution timeMemory
1335325thaibaotran555Gym Badges (NOI22_gymbadges)C++20
100 / 100
144 ms12476 KiB
///TRAN THAI BAO :3

#include <iostream>
#include <vector>
#include <cstring>
#include <queue>
#include <algorithm>

using namespace std;

#define maxN 500007

typedef pair<long long, long long> pii;

priority_queue<long long, vector<long long>, less<long long> >pq;

int n;
pii inp[maxN];

bool cmp(pii x, pii y)
{
    return x.second < y.second;
}

void solve()
{
    cin >> n;
    for(int i = 1; i <= n; i++)
        cin >> inp[i].first;
    for(int i = 1; i <= n; i++)
    {
        cin >> inp[i].second;
        inp[i].second += inp[i].first;
    }
    sort(inp+1, inp+n+1, cmp);
    long long sum = 0;
    for(int i = 1; i <= n; i++)
    {
        pq.push(inp[i].first);
        sum += inp[i].first;
        while(sum > inp[i].second)
        {
            sum -= pq.top();
            pq.pop();
        }
    }
    cout << pq.size();
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    solve();
    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...