답안 #853231

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
853231 2023-09-23T16:51:37 Z serifefedartar 원숭이와 사과 나무 (IZhO12_apple) C++17
0 / 100
342 ms 195192 KB
#include <bits/stdc++.h>
using namespace std;
 
#define fast ios::sync_with_stdio(0);cin.tie(0);
#define s second
#define f first
typedef long long ll;
const ll MOD = 1e9 + 7;
const ll LOGN = 20;
const ll MAXN = 2e5 + 5;

struct Node {
	ll l, r, sum, lazy;
	Node *ptrL, *ptrR;

	Node(int a, int b) : l(a), r(b), ptrL(NULL), ptrR(NULL), sum(0), lazy(0) { };
	void add() {
		if (ptrL == NULL && l != r) {
			int mid = (l + r) / 2;
			ptrL = new Node(l, mid);
			ptrR = new Node(mid+1, r);
		}
	}

	void push() {
		if (lazy) {
			sum = r - l + 1;
			if (l != r) {
				add();
				ptrL->lazy = 1;
				ptrR->lazy = 1;
			}
			lazy = 0;
		}
	}

	void update(int a, int b) {
		push();
		if (l > b || a > r)
			return ;
		if (a <= l && r <= b) {
			lazy = 1;
			push();
			return ;
		}
		add();
		ptrL->update(a, b);
		ptrR->update(a, b);
		sum = ptrL->sum + ptrR->sum; 
	}

	ll query(int a, int b) {
		if (l > b || a > r)
			return 0;
		push();
		if (a <= l && r <= b)
			return sum;
		add();
		return ptrL->query(a, b) + ptrR->query(a, b);
	}
};

int main() {
	fast
	int M, D, X, Y;
	cin >> M;

	Node *root = new Node(1, 1e8);
	int C = 0;
	while (M--) {
		cin >> D >> X >> Y;
		X += C, Y += C;
		if (D == 1) {
			C = root->query(X, Y);
			cout << C << "\n";
		} else
			root->update(X, Y);
	}
}

Compilation message

apple.cpp: In constructor 'Node::Node(int, int)':
apple.cpp:14:15: warning: 'Node::ptrR' will be initialized after [-Wreorder]
   14 |  Node *ptrL, *ptrR;
      |               ^~~~
apple.cpp:13:11: warning:   'll Node::sum' [-Wreorder]
   13 |  ll l, r, sum, lazy;
      |           ^~~
apple.cpp:16:2: warning:   when initialized here [-Wreorder]
   16 |  Node(int a, int b) : l(a), r(b), ptrL(NULL), ptrR(NULL), sum(0), lazy(0) { };
      |  ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 15 ms 10072 KB Output is correct
5 Correct 16 ms 12120 KB Output is correct
6 Correct 17 ms 11864 KB Output is correct
7 Correct 16 ms 12120 KB Output is correct
8 Correct 162 ms 91216 KB Output is correct
9 Correct 305 ms 155868 KB Output is correct
10 Correct 304 ms 174160 KB Output is correct
11 Correct 321 ms 188752 KB Output is correct
12 Correct 342 ms 195192 KB Output is correct
13 Incorrect 68 ms 34384 KB Output isn't correct
14 Halted 0 ms 0 KB -