#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |