제출 #1171745

#제출 시각아이디문제언어결과실행 시간메모리
1171745coolboy19521Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
0 / 100
408 ms242904 KiB
#include "bits/stdc++.h"

#define mxS 20000007
#define mxN 1000006

using namespace std;

struct stree{
	int ar[mxS], le[mxS], ri[mxS];
	
	void copy(int i, int j){
		ar[i] = ar[j], le[i] = le[j], ri[i] = ri[j];
	}
	
	void upd(int i, int x, int l, int r, int& v, int k){
		if (l < r){
			int mi = (l + r) / 2;
			int ro = v;
			
			if (i <= mi){
				ri[ro] = ri[k], le[ro] = ++ v;
				upd(i, x, l, mi, v, le[k]);
			} else {
				le[ro] = le[k], ri[ro] = ++ v;
				upd(i, x, mi + 1, r, v, ri[k]);
			}
			
			ar[ro] = max(ar[le[ro]], ar[ri[ro]]);
		} else
			ar[v] = max(x, ar[k]);
	}
	
	int qry(int a, int b, int l, int r, int v){
		if (a <= l && r <= b)
			return ar[v];
		else if (a <= r && l <= b){
			int mi = (l + r) / 2;
			int ans = 0;
			
			if (le[v]) ans = max(ans, qry(a, b, l, mi, le[v]));
			if (ri[v]) ans = max(ans, qry(a, b, mi + 1, r, ri[v]));
			
			return ans;
		} else
			return 0;
	}
} st;

int roots[mxN];
int w[mxN];

int main(){
	int N, M;
	cin >> N >> M;
	
	for (int i = 1; i <= N; i ++)
		cin >> w[i];
		
	stack<int> stk;
	int pr = 2;
	
	roots[0] = 1;
	
	for (int i = 1; i <= N; i ++){
		while (stk.size() && w[i] > w[stk.top()]){
			stk.pop();
		}
		
		if (stk.size()){
			int v = stk.top(), s = w[v];
			roots[i] = pr;

			st.upd(v, w[v] + w[i], 1, N, pr, roots[i - 1]);
		} else {
			roots[i] = pr;
			st.copy(roots[i], roots[i - 1]);
		}
		
		stk.push(i);
		pr ++;
	}
	
	while (M --){
		int L, R, K;
		cin >> L >> R >> K;
		
		int loc = st.qry(L, R, 1, N, roots[R]);
		
		loc <= K ? puts("1") : puts("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...