Submission #885938

#TimeUsernameProblemLanguageResultExecution timeMemory
885938dostsMonkey and Apple-trees (IZhO12_apple)C++17
0 / 100
0 ms348 KiB
#include <bits/stdc++.h> #pragma GCC optimize "O3,unroll-loops" using namespace std; #define sp << " " << //#define int long long #define vi vector<int> #define F(xxx,yyy) for (int xxx=1;xxx<=yyy;xxx++) #define pii pair<int,int> #define pb push_back const int N = 2e5+1; struct Node { Node* c[2]; int sum = 0,l,r; bool lazy = 0; inline Node(int a,int b) { c[0] = c[1] = NULL; l = a; r = b; } inline void apply() { if (lazy) sum = r-l+1; } inline void extend() { int m = (l+r) >> 1; if (c[0]==NULL) c[0] = new Node(l,m); if (c[1]==NULL) c[1] = new Node(m+1,r); } inline void push() { if (l^r) { extend(); c[0]->lazy |= lazy; c[1]->lazy |= lazy; } } void upd(int L,int R) { apply(); if (l > R || r < L) return; if (l >= L && r <= R) { lazy = 1; push(); return; } push(); int m = (l+r) >> 1; c[0]->upd(L,R),c[1]->upd(L,R); sum = c[0]->sum+c[1]->sum; } int query(int L,int R) { apply(); if (l > R || r < L) return 0; if (l >= L && r <= R) return sum; if(lazy){ if (L >= l && R <= r) return R-L+1; else if (L <= l) return R-l+1; else return r-L+1; } push(); return c[0]->query(L,R)+c[1]->query(L,R); } }; void solve() { int q; cin >> q; int c = 0; Node* root = new Node(1,1e9); while (q--) { int t,l,r; cin >> t >> l >> r; if (t == 1) { c = root->query(l+c,r+c); cout << c << endl; } else root->upd(l+c,r+c); } } signed main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #ifdef Local freopen("in","r",stdin); freopen("out","w",stdout); #endif int t = 1; //cin >> t; F(i,t) solve(); }

Compilation message (stderr)

apple.cpp: In member function 'void Node::upd(int, int)':
apple.cpp:47:7: warning: unused variable 'm' [-Wunused-variable]
   47 |   int m = (l+r) >> 1;
      |       ^
#Verdict Execution timeMemoryGrader output
Fetching results...