제출 #1357243

#제출 시각아이디문제언어결과실행 시간메모리
1357243JohanHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
13 / 100
435 ms170320 KiB
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 1e6 + 5;
int n, m;
long long w[MAXN];
long long bad[MAXN];
long long st[21][MAXN];
int lg[MAXN];

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    cin >> n >> m;
    for (int i = 1; i <= n; i++) cin >> w[i];

    for (int i = 1; i < n; i++) {
        if (w[i] > w[i+1]) bad[i] = w[i] + w[i+1];
        else bad[i] = 0;
    }

    // build logs
    for (int i = 2; i <= n; i++)
        lg[i] = lg[i/2] + 1;

    // build sparse table
    for (int i = 1; i < n; i++)
        st[0][i] = bad[i];

    for (int j = 1; (1 << j) < n; j++) {
        for (int i = 1; i + (1 << j) - 1 < n; i++) {
            st[j][i] = max(st[j-1][i], st[j-1][i + (1 << (j-1))]);
        }
    }

    while (m--) {
        int l, r;
        long long k;
        cin >> l >> r >> k;

        if (l == r) {
            cout << 1 << '\n';
            continue;
        }

        int len = r - l;
        int j = lg[len];
        long long mx = max(st[j][l], st[j][r - (1 << j)]);

        cout << (mx <= k) << '\n';
    }

    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…