제출 #1061644

#제출 시각아이디문제언어결과실행 시간메모리
1061644VMaksimoski008Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
30 / 100
298 ms32848 KiB
#include <bits/stdc++.h>
//#define int long long

using namespace std;

using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;

const int mod = 1e9 + 7;
const int LOG = 20;
const int maxn = 1e5 + 5;

signed main() {
    ios_base::sync_with_stdio(false);
    cout.tie(0); cin.tie(0);

    int n, q;
    cin >> n >> q;

    vector<int> v(n+1);
    for(int i=1; i<=n; i++) cin >> v[i];

    if(n <= 5000 && q <= 5000) {
        while(q--) {
            int l, r, k;
            cin >> l >> r >> k;
            bool ok = 1;
            int mx = v[l];
            for(int i=l+1; i<=r&&ok; i++) {
                if(mx > v[i] && mx + v[i] > k) ok = 0;
                mx = max(mx, v[i]);
            }
            cout << ok << '\n';
        }
        return 0;
    }

    vector<int> pref(n+1);
    for(int i=1; i+1<=n; i++) pref[i] = (v[i] <= v[i+1]);
    for(int i=2; i<=n; i++) pref[i] += pref[i-1];

    while(q--) {
        int l, r, k;
        cin >> l >> r >> k;
        if(l == r) {
            cout << 1 << '\n';
            continue;
        }

        if(pref[r-1] - pref[l-1] == r - l) cout << 1 << '\n';
        else cout << 0 << '\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...