Submission #1123471

#TimeUsernameProblemLanguageResultExecution timeMemory
1123471AvianshGym Badges (NOI22_gymbadges)C++20
42 / 100
2095 ms78512 KiB
#include <bits/stdc++.h>

using namespace std;

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n;
    cin >> n;
    array<int,3>arr[n];
    for(int i = 0;i<n;i++){
        cin >> arr[i][2];
    }

    for(int i = 0;i<n;i++){
        cin >> arr[i][1];
    }
    //sum,l,x

    for(int i = 0;i<n;i++){
        arr[i][0]=arr[i][1]+arr[i][2];
    }

    sort(arr,arr+n);

    int ans = 0;
    vector<pair<int,priority_queue<int>>>lis;
    lis.push_back({arr[0][2],priority_queue<int>()});
    lis[0].second.push(arr[0][2]);
    for(int i = 1;i<n;i++){
        bool skip=0;
        if(lis.back().first<=arr[i][1]){
            lis.push_back(lis.back());
            lis.back().first+=arr[i][2];
            lis.back().second.push(arr[i][2]);
            skip=1;
        }
        for(int j = 0;j<lis.size()-skip;j++){
            lis[j].first+=arr[i][2];
            lis[j].second.push(arr[i][2]);
            lis[j].first-=lis[j].second.top();
            lis[j].second.pop();
        }
    }
    cout << lis.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...