답안 #890260

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
890260 2023-12-20T21:04:32 Z Justin1 원숭이와 사과 나무 (IZhO12_apple) C++17
0 / 100
344 ms 262144 KB
#include <bits/stdc++.h>
#define f first
#define s second
// #define int long long
using namespace std;

class dynamicSeg { //range max query, range set update
	int lzy, val;
	int l, r;
	dynamicSeg *L = NULL, *R = NULL;
	void extend(dynamicSeg *&node, int l, int r) {
		if (node == NULL) node = new dynamicSeg(l, r);
	}
	void push() {
		int mid = (l + r) / 2;
		extend(L, l, mid), extend(R, mid + 1, r);
		if (!lzy) return;
		L-> val = L->r - L->l + 1;
		R-> val = R->r - R->l + 1;
		L-> lzy = R->lzy = !(lzy = 0);
	}
public:
	dynamicSeg (int sz) : l(1), r(sz) {}
	dynamicSeg (int l, int r) : l(l), r(r) {}
	void upd(int l, int r) {
		push();
		if (this->r < l || r < this->l) return;
		if (l <= this->l && this->r <= r) {
			val = this->r - this->l + 1;
			lzy = 1;
			return;
		}
		L->upd(l, r), R->upd(l, r);
		val = L->val + R->val;
	}
	int qry(int l, int r) {
		push();
		if (this->r < l || r < this->l) return 0;
		if (l <= this->l && this->r <= r) return val;
		return L->qry(l, r) + R->qry(l, r);
	}
};

int n, m, k, x, y, z;
dynamicSeg seg(1'000'000'000);

void solve() {
	int C = 0;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> x >> y >> z;
		if (x == 1) cout << (C = seg.qry(y + C, z + C)) << "\n"; 
		else seg.upd(y + C, z + C);
	}
}

signed main() {
    cin.tie(0), cout.tie(0) -> sync_with_stdio(0);
    cout << fixed << setprecision(10);
    int T = 1;
    // cin >> T;
    while (T--) {
        solve();
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 14 ms 9564 KB Output is correct
5 Correct 17 ms 11356 KB Output is correct
6 Correct 20 ms 11136 KB Output is correct
7 Correct 17 ms 11352 KB Output is correct
8 Correct 158 ms 86956 KB Output is correct
9 Correct 301 ms 150608 KB Output is correct
10 Correct 321 ms 166724 KB Output is correct
11 Correct 318 ms 179176 KB Output is correct
12 Correct 318 ms 184756 KB Output is correct
13 Correct 291 ms 217172 KB Output is correct
14 Correct 304 ms 219352 KB Output is correct
15 Runtime error 344 ms 262144 KB Execution killed with signal 9
16 Halted 0 ms 0 KB -