답안 #282726

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
282726 2020-08-24T19:37:20 Z dolphingarlic 원숭이와 사과 나무 (IZhO12_apple) C++14
0 / 100
533 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 = 1000000000):
        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);
    }
};

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 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 22 ms 8704 KB Output is correct
5 Correct 29 ms 10616 KB Output is correct
6 Correct 33 ms 10232 KB Output is correct
7 Correct 26 ms 10616 KB Output is correct
8 Correct 217 ms 77304 KB Output is correct
9 Correct 446 ms 131192 KB Output is correct
10 Correct 474 ms 147244 KB Output is correct
11 Correct 487 ms 159692 KB Output is correct
12 Correct 491 ms 165220 KB Output is correct
13 Correct 464 ms 205612 KB Output is correct
14 Correct 472 ms 207224 KB Output is correct
15 Runtime error 533 ms 262148 KB Execution killed with signal 9
16 Halted 0 ms 0 KB -