제출 #1285009

#제출 시각아이디문제언어결과실행 시간메모리
1285009zxzuamHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
0 / 100
773 ms6620 KiB
#include <bits/stdc++.h>
//#define int long long
using ll = int64_t;
using namespace std;
constexpr int maxn = 1E6 + 1;
vector <bool> t(maxn * 4);
vector <int> A(maxn + 1);
void build(int v, int tl, int tr) {
    if(tl == tr) {
        t[v] = true;
        return;
    }
    int tm = (tl + tr) / 2;
    build(v * 2, tl, tm);
    build(v * 2 + 1, tm + 1, tr);
    t[v] = ( t[v * 2] && t[v * 2 + 1] && (A[ tm ] <= A[tm + 1]) );
}
int get(int v, int tl, int tr, int l, int r) {
    if(tl > r || l > tr) return 2;
    if(l <= tl && tr <= r) return t[v];
    int tm = (tl + tr) / 2;
    int res = get(v * 2, tl, tm, l, r) + get(v * 2 + 1, tm + 1, tr, l, r);
    if(res > 2) return 1;
    if(res < 2) return 0;
    return (A[tm] <= A[tm + 1]);
}
void orz() {
    int N, M;
    cin >> N >> M;
    for(int i = 1; i <= N; ++i) {
        cin >> A[i];
    }
    build(1, 1, N);
    for(int i = 1; i <= M; ++i) {
        int l, r, k;
        cin >> l >> r >> k;
        cout << get(1, 1, N, l, r) << '\n';
    }
}
int32_t main() {
    ios_base::sync_with_stdio(false), cin.tie(nullptr);
    //freopen("promote.in", "r", stdin);
    //freopen("promote.out", "w", stdout);
    int T = 1;
    //cin >> T;
    while(T--) orz();
    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...