Submission #684048

#TimeUsernameProblemLanguageResultExecution timeMemory
684048nifesheMonkey and Apple-trees (IZhO12_apple)C++17
0 / 100
420 ms262144 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #pragma GCC target ("avx2") #pragma GCC optimize ("O3") #pragma GCC optimize ("unroll-loops") #pragma comment (linker, "/STACK: 16777216") #define f first #define s second #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() #define sz(x) ((int)(x).size()) #define pb push_back #define mp make_pair //#define int long long using namespace std; using namespace __gnu_pbds; template <typename T> inline bool umax(T &a, const T &b) { if(a < b) { a = b; return 1; } return 0; } template <typename T> inline bool umin(T &a, const T &b) { if(a > b) { a = b; return 1; } return 0; } typedef long long ll; typedef long double ld; typedef unsigned long long ull; template <typename T> using oset = tree<T, null_type, less <T>, rb_tree_tag, tree_order_statistics_node_update>; ll mod = 998244353; const ll base = 1e6 + 5; const ll inf = 1e9 + 5; const int MAX = 1e6 + 5; const int LG = 31; random_device rd; mt19937 gen(rd()); uniform_int_distribution<ll> dis(1, inf); struct node { node *lf, *rt; int s = 0; bool add = 0; int tl = 0, tr = 0; node() { lf = nullptr; rt = nullptr; } node(int L, int R) { lf = nullptr; rt = nullptr; tl = L; tr = R; } void push() { int tm = (tl + tr) / 2; if(tr - tl > 1 && !lf) lf = new node(tl, tm); if(tr - tl > 1 && !rt) rt = new node(tm, tr); if(!add) return; s = add * (tr - tl); if(tr - tl > 1) { lf -> add = add; rt -> add = add; } add = 0; } int get(int l, int r) { push(); if(r <= tl || tr <= l) return 0; if(l <= tl && tr <= r) return s; return (lf -> get(l, r)) + (rt -> get(l, r)); } void update(int l, int r, int x) { push(); if(r <= tl || tr <= l) return; if(l <= tl && tr <= r) { add = x; push(); return; } lf -> update(l, r, x); rt -> update(l, r, x); s = lf -> s + rt -> s; } }; node SegTree(0, inf); void solve() { int q; cin >> q; int lst = 0; while(q--) { int t, l, r; cin >> t >> l >> r; l += lst, r += lst; l--; if(t == 1) cout << (lst = SegTree.get(l, r)) << '\n'; else SegTree.update(l, r, 1); } } signed main() { // freopen("skyline.in", "r", stdin); freopen("skyline.out", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int ttt = 1; // cin >> ttt; while(ttt--) { solve(); } return 0; }

Compilation message (stderr)

apple.cpp:8: warning: ignoring '#pragma comment ' [-Wunknown-pragmas]
    8 | #pragma comment (linker, "/STACK: 16777216")
      |
#Verdict Execution timeMemoryGrader output
Fetching results...