Submission #1267153

#TimeUsernameProblemLanguageResultExecution timeMemory
1267153GoBananas69Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
0 / 100
3094 ms15740 KiB
#include <algorithm>
#include <iostream>
#include <vector>
typedef long long ll;
using namespace std;

int main() {
    cin.tie(0)->sync_with_stdio(0);
    int n, q;
    cin >> n >> q;
    vector<int> w(n);
    for (int &i : w) {
        cin >> i;
    }
    while (q--) {
        int l, r, k;
        cin >> l >> r >> k;
        --l;
        --r;
        int len = r - l + 1;
        vector<int> pref_max(len), suff_min(len);
        for (int i = l; i <= r; ++i) {
            if (i == l) pref_max[i - l] = w[i];
            else pref_max[i - l] = max(pref_max[i - l - 1], w[i]);
        }
        for (int i = r; i >= l; --i) {
            if (i == r) suff_min[i - l] = w[i];
            else suff_min[i - l] = min(suff_min[i - l + 1], w[i]);
        }
        bool ok = true;
        for (int i = 0; i < len; ++i) {
            if (pref_max[i] > suff_min[i] && pref_max[i] + suff_min[i] > k) {
                cout << "0\n";
                ok = false;
                break;
            }
        }
        if (ok) cout << "1\n";
    }
}
#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...