Submission #885929

#TimeUsernameProblemLanguageResultExecution timeMemory
885929dostsMonkey and Apple-trees (IZhO12_apple)C++17
0 / 100
406 ms262144 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; Node(int a,int b) { c[0] = c[1] = NULL; l = a; r = b; } void apply() { if (lazy) sum = r-l+1; } 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); } void push() { apply(); if (l^r) { extend(); int m = (l+r) >> 1; c[0]->lazy |= lazy; c[1]->lazy |= lazy; } } void upd(int L,int R) { push(); if (l > R || r < L) return; if (l >= L && r <= R) { lazy = 1; push(); return; } c[0]->upd(L,R),c[1]->upd(L,R); sum=c[0]->sum+c[1]->sum; } int query(int L,int R) { if (l > R || r < L) return 0; push(); if (l >= L && r <= R) return sum; 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::push()':
apple.cpp:34:8: warning: unused variable 'm' [-Wunused-variable]
   34 |    int m = (l+r) >> 1;
      |        ^
#Verdict Execution timeMemoryGrader output
Fetching results...