Submission #973402

#TimeUsernameProblemLanguageResultExecution timeMemory
973402colossal_pepeHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
17 / 100
3089 ms8272 KiB
#include <bits/stdc++.h>
using namespace std;

int n, m;
vector<int> a;

int cost(int l, int r) {
    vector<int> c(n, 0);
    stack<int> st;
    for (int i = 0; i <= r; i++) {
        while (not st.empty() and a[st.top()] <= a[i]) st.pop();
        if (not st.empty()) c[st.top()] = a[st.top()] + a[i];
        st.push(i);
    }
    int ret = 0;
    for (int i = l; i <= r; i++) {
        ret = max(ret, c[i]);
    }
    return ret;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    if (n > 5000) exit(0);
    cin >> n >> m;
    a.resize(n);
    for (int &x : a) {
        cin >> x;
    }
    while (m--) {
        int l, r, k;
        cin >> l >> r >> k;
        l--, r--;
        cout << (cost(l, r) <= k) << '\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...