답안 #282741

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
282741 2020-08-24T19:57:47 Z dolphingarlic 원숭이와 사과 나무 (IZhO12_apple) C++14
0 / 100
497 ms 262148 KB
#include <bits/stdc++.h>
using namespace std;

struct Node {
    int l, r, val;
    bool lazy;
    Node *lc, *rc;

    Node(int L = 1, int R = 1e9):
        l(L), r(R), val(0), lazy(false), lc(nullptr), rc(nullptr) {}
    
    void push_lazy() {
        if (!lazy) return;
        val = r - l + 1;
        lazy = 0;
        if (l != r) {
            int mid = (l + r) / 2;
            if (!lc) lc = new Node(l, mid);
            if (!rc) rc = new Node(mid + 1, r);
            lc->lazy = rc->lazy = 1;
        }
    }

    void update(int a, int b) {
        push_lazy();
        if (a > r || b < l) return;
        if (a <= l && b >= r) {
            lazy = 1;
            push_lazy();
        } else {
            int mid = (l + r) / 2;
            if (!lc) lc = new Node(l, mid);
            if (!rc) rc = new Node(mid + 1, r);
            lc->update(a, b);
            rc->update(a, b);
            val = lc->val + rc->val;
        }
    }

    int query(int a, int b) {
        push_lazy();
        if (a > r || b < l) return 0;
        if (a <= l && b >= r) return val;
        int mid = (l + r) / 2;
        if (!lc) lc = new Node(l, mid);
        if (!rc) rc = new Node(mid + 1, r);
        return lc->query(a, b) + rc->query(a, b);
    }
};

Node *root = new Node();

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int m, c = 0, d, x, y;
    cin >> m;
    while (m--) {
        cin >> d >> x >> y;
        if (d == 1) {
            c = root->query(x + c, y + c);
            cout << c << '\n';
        } else root->update(x + c, y + c);
    }
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 21 ms 8576 KB Output is correct
5 Correct 26 ms 10360 KB Output is correct
6 Correct 25 ms 9984 KB Output is correct
7 Correct 26 ms 10360 KB Output is correct
8 Correct 217 ms 77048 KB Output is correct
9 Correct 431 ms 130980 KB Output is correct
10 Correct 464 ms 146936 KB Output is correct
11 Correct 470 ms 159480 KB Output is correct
12 Correct 477 ms 165112 KB Output is correct
13 Correct 444 ms 205176 KB Output is correct
14 Correct 453 ms 207120 KB Output is correct
15 Runtime error 497 ms 262148 KB Execution killed with signal 9
16 Halted 0 ms 0 KB -