Submission #1352366

#TimeUsernameProblemLanguageResultExecution timeMemory
1352366AvianshUiro (JOI25_uiro)C++20
30 / 100
5091 ms8204 KiB
#include <bits/stdc++.h>

using namespace std;

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n;
    cin >> n;
    int a[n];
    for(int &i : a){
        cin >> i;
    }
    int q;
    cin >> q;
    while(q--){
        int l,r;
        cin >> l >> r;
        l--;r--;
        multiset<int>ms;
        int sum = 0;
        int cnt = 0;
        for(int i = l;i<=r;i++){
            if(sum-a[i]>=0){
                sum-=a[i];
                cnt++;
                ms.insert(a[i]);
            }
            else{
                if(ms.size()&&(*(--ms.end()))>a[i]){
                    sum+=2*(*(--ms.end()));
                    sum-=a[i];
                    ms.erase(--ms.end());
                    ms.insert(a[i]);
                }
                else{
                    sum+=a[i];
                }
            }
        }
        cout << cnt << "\n";
    }
    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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...