Submission #689831

# Submission time Handle Problem Language Result Execution time Memory
689831 2023-01-29T13:36:53 Z lovezah Monkey and Apple-trees (IZhO12_apple) C++17
0 / 100
421 ms 262144 KB
#include <bits/stdc++.h>
namespace newbiezah {
#ifdef LOCAL
#include "E:\cp-Library\debug.h"
#else
#define dbg(...)
#endif

#define ALL(x) (x).begin(), (x).end() 
#define RALL(x) (x).rbegin(), (x).rend()
#define SZ(x) (int((x).size()))
#define REV(x) reverse(ALL(x))
#define UNIQUE(x) sort(ALL(x)), x.erase(unique(ALL(x)), x.end())
#define mask(x) (1 << (x))
#define fi first
#define se second
#define ft front()
#define bk back()
#define ppb pop_back()
#define ppf pop_front()
#define pb push_back
#define pf push_front
#define eb emplace_back 
#define mp make_pair
#define ins insert
#define lb lower_bound
#define ub upper_bound
#define tcT template<class T

tcT> using V = std::vector<T>;
tcT> int ilb(V<T> &a, const T &b) { return int(lb(ALL(a), b) - a.begin()); }
tcT> int iub(V<T> &a, const T &b) { return int(ub(ALL(a), b) - a.begin()); }
tcT, size_t sz>
using AR = std::array<T, sz>;
using ll = int64_t;
using db = double;
using str = std::string;
using pi = std::pair<int, int>;
using pl = std::pair<ll, ll>;
using VI = V<int>;
using VL = V<ll>;
using VS = V<str>;
using VB = V<bool>;
using VPI = V<pi>;
using VPL = V<pl>;

std::mt19937 rng(std::chrono::steady_clock::now().time_since_epoch().count());
#define uid(a, b) uniform_int_distribution<int>(a, b)(rng)

tcT> using pq = std::priority_queue<T>;
tcT> using pqg = std::priority_queue<T, std::vector<T>, std::greater<T>>;
tcT> bool ckmax(T &u, T v) { return v > u ? u = v, true : false; }
tcT> bool ckmin(T &u, T v) { return v < u ? u = v, true : false; }

#define FOR(i, a, n) for (int i = (a); i < (n); i++)
#define F0R(i, n) FOR(i, 0, n)
#define FORd(i, a, n) for (int i = (n) - 1; i >= (a); i--)
#define F0Rd(i, n) FORd(i, 0, n)
#define rep(n) F0R(_, n)
#define trav(a, v) for (auto &a : v)
#define each(a, b, v) for (auto &&[a, b] : v)
#define each3(a, b, c, v) for (auto &&[a, b, c] : v)

const char nl = '\n';
const int mod1 = int(1e9)+7, mod9 = 998244353;
const int dxi[8] = {1, 0, -1, 0, 1, 1, -1, -1}, dyi[8] = {0, 1, 0, -1, 1, -1, 1, -1};
} // namespace newbiezah
using namespace newbiezah;
using namespace std;

struct node {
    int val, lz;
    int l, r;
    node* c[2];
    node(int l, int r) : l(l), r(r) {
        F0R(i, 2) c[i] = NULL;
        val = lz = 0;
    }

    void push() {
        int m = (l+r)/2;
        if (!c[0]) c[0] = new node(l, m);
        if (!c[1]) c[1] = new node(m, r);
        if (lz) {
            val = r-l;
            F0R(i, 2) c[i]->lz = 1, c[i]->val = c[i]->r - c[i]->l;
        }
        lz = 0;
    }
    void pull() {
        val = 0;
        F0R(i, 2) val += c[i]->val;
    }
    void upd(int ql, int qr) {
        push();
        if (qr <= l || r <= ql) return;
        if (ql <= l && r <= qr) {
            lz = 1; push(); pull();
            return;
        }
        F0R(i, 2) c[i]->upd(ql, qr);
        pull();
    }
    int qry(int ql, int qr) {
        push();
        if (qr <= l || r <= ql) return 0;
        if (ql <= l && r <= qr) return val;
        int res = 0;
        F0R(i, 2) res += c[i]->qry(ql, qr);
        return res;
    }
};
int n, c;

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);

    cin >> n;
    node rt(0, 1e9+2);
    rep(n) {
        int t, l, r; cin >> t >> l >> r;
        l += c, r += c;
        if (t == 1) {
            c = rt.qry(l, r+1);
            cout << c << nl;
        } else {
            rt.upd(l, r+1);
        }
    }
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 324 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 19 ms 9528 KB Output is correct
5 Correct 24 ms 11532 KB Output is correct
6 Correct 22 ms 11084 KB Output is correct
7 Correct 23 ms 11532 KB Output is correct
8 Correct 187 ms 87608 KB Output is correct
9 Correct 373 ms 152172 KB Output is correct
10 Correct 404 ms 168280 KB Output is correct
11 Correct 399 ms 180948 KB Output is correct
12 Correct 421 ms 186384 KB Output is correct
13 Correct 368 ms 217220 KB Output is correct
14 Correct 409 ms 219456 KB Output is correct
15 Runtime error 396 ms 262144 KB Execution killed with signal 9
16 Halted 0 ms 0 KB -