답안 #979409

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
979409 2024-05-10T21:16:42 Z MDario Intergalactic ship (IZhO19_xorsum) C++11
0 / 100
1 ms 6492 KB
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define ll long long
#define all(x) (x).begin(),(x).end()
#define MAXN 1000001
using namespace std;
using namespace __gnu_pbds;
typedef tree<ll, null_type, less_equal<ll>,
			 rb_tree_tag, tree_order_statistics_node_update>
	TREE;
int a[MAXN],arr[MAXN];
int abi[MAXN];

void update(int i,int &k){
    while(i < MAXN){
        abi[i] += k;
        i += (i&(-i));
    }
}
int query(int i){
    int su = 0;
    while(i > 0){
        su += abi[i];
        i -= (i&(-i));
    }
    return su;
}
int query(int a,int b){
    return query(b)-query(a-1);
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n,q;
    cin >> n >> q;
    for(int i = 1; i <= n; i++){
        cin >> arr[i];           
    }
    for(int i = 1; i < n; i++){
        if(arr[i] < arr[i+1]){
            a[i] = 1;
        }else{
            a[i] = 0;
        }
        update(i,a[i]);
    }
    while(q--){
        //int cnt = 0;
        ll l,r,x;
        cin >> l >> r >> x;
        if(x == 0){
            if(l == r){
                cout << 1 << "\n";
                continue;
            }
            int qe = query(l,r-1);
            cout << (qe==(r-l)) << "\n";
            continue;
        }
        int mx = 0;
        int mxx = 0;
        for(int i = l; i <= min(l+1000,r); i++){
            if(arr[i] < mxx){
                if(mx < mxx+arr[i]){
                    mx = mxx + arr[i];
                }
            }
            if(mxx < arr[i])mxx = arr[i];
            if(mx > x)break;
        }
        if(mx > x){
            cout << "0\n";
        }else{
            cout << "1\n";
        }
    }
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6488 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6488 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6488 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6492 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6492 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6492 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6488 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6488 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 6488 KB Output isn't correct
2 Halted 0 ms 0 KB -