This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
const int nax = 250003;
int n, m, q;
pair<long long, long long>st[nax * 4];
void unlazy(int v) {
	for(int c : {v*2, v*2+1}) {
		long long val = st[v].second;
		long long cut = min(val, st[c].first);
		st[c].first -= cut, val -= cut;
		st[c].second += val;
		st[c].first += st[v].first;
	}
	st[v] = {0LL, 0LL};
}
void add(int l, int r, int L, int R, long long del, int v) {
	if(l>R || r<L) return;
	if(l>=L && r<=R) {
		st[v].first += del;
		return;
	}
	unlazy(v);
	int mid = (l+r)/2;
	add(l, mid, L, R, del, v*2);
	add(mid+1, r, L, R, del, v*2+1);
}
void sub(int l, int r, int L, int R, long long del, int v) {
	if(l>R || r<L) return;
	if(l>=L && r<=R) {
		long long cut = min(st[v].first, del);
		st[v].first -= cut, del -= cut;
		st[v].second += del;
		return;
	}
	unlazy(v);
	int mid = (l+r)/2;
	sub(l, mid, L, R, del, v*2);
	sub(mid+1, r, L, R, del, v*2+1);	
}
long long query(int l, int r, int p, int v) {
	if(l==r) {
		return st[v].first;
	}
	unlazy(v);
	int mid = (l+r)/2;
	if(p<=mid) return query(l, mid, p, v*2);
	else return query(mid+1, r, p, v*2+1);
}
void PlayGround() {
	cin>>n>>m>>q;
	while(q--) {
		int tp;
		cin>>tp;
		if(tp==1) {
			long long l, r, c, k;
			cin>>l>>r>>c>>k;
			add(1, n, l, r, k, 1);
		} else if(tp==2) {
			long long l, r, k;
			cin>>l>>r>>k;
			sub(1, n, l, r, k, 1);
		} else {
			long long a, b;
			cin>>a>>b;
			long long cur = query(1, n, a, 1);
			if(cur>=b) cout<<"1\n";
			else cout<<"0\n";
		}
	}
	// cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
}
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	PlayGround();
	return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |