답안 #282739

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
282739 2020-08-24T19:56:22 Z dolphingarlic 원숭이와 사과 나무 (IZhO12_apple) C++14
0 / 100
510 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 == nullptr) lc = new Node(l, mid);
            if (rc == nullptr) 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 == nullptr) lc = new Node(l, mid);
            if (rc == nullptr) 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 == nullptr) lc = new Node(l, mid);
        if (rc == nullptr) rc = new Node(mid + 1, r);
        return lc->query(a, b) + rc->query(a, b);
    }
};

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    Node *root = new Node();
    int m, c = 0;
    cin >> m;
    while (m--) {
        int d, x, y;
        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 0 ms 384 KB Output is correct
3 Correct 0 ms 384 KB Output is correct
4 Correct 21 ms 8576 KB Output is correct
5 Correct 26 ms 10368 KB Output is correct
6 Correct 26 ms 9984 KB Output is correct
7 Correct 26 ms 10360 KB Output is correct
8 Correct 220 ms 77176 KB Output is correct
9 Correct 420 ms 130936 KB Output is correct
10 Correct 462 ms 147064 KB Output is correct
11 Correct 472 ms 159480 KB Output is correct
12 Correct 470 ms 164976 KB Output is correct
13 Correct 448 ms 205188 KB Output is correct
14 Correct 452 ms 207088 KB Output is correct
15 Runtime error 510 ms 262148 KB Execution killed with signal 9
16 Halted 0 ms 0 KB -