Submission #853229

# Submission time Handle Problem Language Result Execution time Memory
853229 2023-09-23T16:49:42 Z serifefedartar Monkey and Apple-trees (IZhO12_apple) C++17
0 / 100
357 ms 215888 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) {
		push();
		if (l > b || a > r)
			return 0;
		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) { };
      |  ^~~~
# Verdict Execution time Memory Grader output
1 Correct 1 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 14 ms 11356 KB Output is correct
5 Correct 17 ms 13656 KB Output is correct
6 Correct 17 ms 13144 KB Output is correct
7 Correct 17 ms 13656 KB Output is correct
8 Correct 150 ms 100688 KB Output is correct
9 Correct 315 ms 171168 KB Output is correct
10 Correct 327 ms 192152 KB Output is correct
11 Correct 357 ms 208720 KB Output is correct
12 Correct 351 ms 215888 KB Output is correct
13 Incorrect 60 ms 38652 KB Output isn't correct
14 Halted 0 ms 0 KB -