제출 #1285021

#제출 시각아이디문제언어결과실행 시간메모리
1285021zxzuamHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
0 / 100
3101 ms145180 KiB
#include <bits/stdc++.h>
//#define int long long
using ll = int64_t;
using namespace std;
constexpr int maxn = 2E5, L = 1E9;
int sz = 1;
vector <int> t(maxn * 60), lv(maxn * 60), rv(maxn * 60);
void upd(int v, int tl, int tr, int i, int x) {
    if(i < tl || tr < i) return;
    if(tl == tr){ t[v] = x; return; }
    int tm = (tl + tr) / 2;
    if(i <= tm) {
        if(!lv[v]) lv[v] = ++sz;
        upd(lv[v], tl, tm, i, x);
    }
    else {
        if(!rv[v]) rv[v] = ++sz;
        upd(rv[v], tm + 1, tr, i, x);
    }
    t[v] = max( t[lv[v]], t[rv[v]] );
}
int get(int v, int tl, int tr, int l, int r) {
    if(l > tr || tl > r) return 0;
    if(l <= tl && tr <= r) return t[v];
    int tm = (tl + tr) / 2;
    if(!lv[v]) lv[v] = ++sz;
    if(!rv[v]) rv[v] = ++sz;
    return max( get(lv[v], tl, tm, l, r), get(rv[v], tm + 1, tr, l, r));
}
void orz() {
    int n, m;
    cin >> n >> m;
    vector <int> a(n + 1);
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    for(int i = 1; i <= m; i++) {
        int l, r, k;
        cin >> l >> r >> k;
        bool ok = 1;
        for(int j = l; j <= r; j++) {
            upd(1, 1, L, a[j], a[j]);
            int x = get(1, 1, L, a[j] + 1, L);
            if(x + a[j] > k) {
                ok = 0;
                break;
            }
        }
        for(int j = l; j <= r; j++) {
            upd(1, 1, L ,a[j], 0);
        }
        if(ok) {
            cout << "1\n";
        }
        else cout << "0\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...