Submission #1284864

#TimeUsernameProblemLanguageResultExecution timeMemory
1284864zxzuamMonkey and Apple-trees (IZhO12_apple)C++20
0 / 100
49 ms64468 KiB
#include <bits/stdc++.h> #define int long long using ll = long long; using namespace std; constexpr int maxn = 1E6 + 1; vector <int> t(maxn * 4), f(maxn * 4); int C; void push(int v, int tl, int tr) { if(f[v]) { t[v] = (tr - tl + 1); if(tr > tl) { f[v * 2] = f[v * 2 + 1] = f[v]; } f[v] = 0; } } void upd(int v, int tl, int tr, int l, int r) { push(v, tl, tr); if(l > tr || tl > r) return; if(l <= tl && tr <= r) { f[v] = 1; push(v, tl, tr); return; } int tm = (tl + tr) / 2; upd(v * 2, tl, tm, l, r); upd(v * 2 + 1, tm + 1, tr, l, r); t[v] = t[v * 2] + t[v * 2 + 1]; } int get(int v, int tl, int tr, int l, int r) { push(v, tl, tr); if(l > tr || tl > r) return 0; if(l <= tl && tr <= r) return t[v]; int tm = (tl + tr) / 2; return get(v * 2, tl, tm, l, r) + get(v * 2 + 1, tm + 1, tr, l, r); } void orz() { int N; cin >> N; vector <int> D(N + 1), X(N + 1), Y(N + 1); for(int i = 1; i <= N; i++) { cin >> D[i] >> X[i] >> Y[i]; } for(int i = 1; i <= N; i++) { X[i] += C; Y[i] += C; if(D[i] == 2) { upd(1, 1, maxn, X[i], Y[i]); } else{ C = get(1, 1, maxn, X[i], Y[i]); cout << C << '\n'; } } } int32_t main() { ios_base::sync_with_stdio(false), cin.tie(nullptr); //freopen("promote.in", "r", stdin); //freopen("promote.out", "w", stdout); int T = 1; //cin >> T; while(T--) orz(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...