제출 #577928

#제출 시각아이디문제언어결과실행 시간메모리
577928KindaNamelessMonkey and Apple-trees (IZhO12_apple)C++14
0 / 100
420 ms262144 KiB
#include<algorithm> #include<iostream> #include<iomanip> #include<cstring> #include<numeric> #include<string> #include<vector> #include<bitset> #include<queue> #include<stack> #include<deque> #include<cmath> #include<map> #include<set> using namespace std; #define ll long long #define ld long double struct Node{ int sum = 0, lazy = -1, L, R; Node *left_child = nullptr, *right_child = nullptr; Node(int _l, int _r){ L = _l; R = _r; } void extend(){ if(!left_child && L != R){ int mid = (L + R) >> 1; left_child = new Node(L, mid); right_child = new Node(mid+1, R); } } void push(){ extend(); sum = (lazy == -1 ? sum : (R - L + 1)); if(L != R){ left_child->lazy = (lazy == -1 ? left_child->lazy : lazy); right_child->lazy = (lazy == -1 ? right_child->lazy : lazy); } lazy = -1; } void upd(int l, int r){ push(); if(r < L || R < l){ return; } if(l <= L && R <= r){ lazy = 1; push(); //cout << "seg : " << L << " " << R << ", sum : " << sum << "\n"; return; } int mid = (L + R) >> 1; left_child->upd(l, r); right_child->upd(l, r); sum = left_child->sum + right_child->sum; } int query(int l, int r){ push(); if(r < L || R < l){ return 0; } if(l <= L && R <= r){ //cout << "seg : " << L << " " << R << ", sum : " << sum << "\n"; return sum; } return left_child->query(l, r) + right_child->query(l, r); } }; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int LIM = (1 << 30) - 1; Node *ST = new Node(0, LIM); int M; cin >> M; int c = 0; while(M--){ int d, x, y; cin >> d >> x >> y; x--; y--; if(d == 1){ c = ST->query(x + c, y + c); cout << c << "\n"; } else{ ST->upd(x + c, y + c); } } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

apple.cpp: In member function 'void Node::upd(int, int)':
apple.cpp:57:13: warning: unused variable 'mid' [-Wunused-variable]
   57 |         int mid = (L + R) >> 1;
      |             ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...