제출 #479062

#제출 시각아이디문제언어결과실행 시간메모리
479062MohammadAghil원숭이와 사과 나무 (IZhO12_apple)C++14
100 / 100
414 ms207176 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pp; #define rep(i,l,r) for(int i = (l); i < r; i++) #define per(i,r,l) for(int i = (r); i >= l; i--) #define all(x) x.begin(), x.end() #define sz(x) (int)(x).size() #define pb push_back #define ff first #define ss second const ll mod = 998244353, maxn = 2e5 + 1, maxk = 30, inf = 1e9 + 5; struct Node{ int lx, rx, sum = 0, lazy = -1; Node *lc = 0, *rc = 0; Node(int lx, int rx): lx(lx), rx(rx){} void push(){ sum = rx - lx; lazy = 1; } void shift(){ int mid = (lx + rx) >> 1; if(!lc) lc = new Node(lx, mid); if(!rc) rc = new Node(mid, rx); if(lazy != -1){ lc->push(); rc->push(); lazy = -1; } } int query(int l, int r){ if(l <= lx && r >= rx) return sum; if(l >= rx || r <= lx) return 0; shift(); int mid = (lx + rx) >> 1; return lc->query(l, r) + rc->query(l, r); } void upd(int l, int r){ if(l <= lx && r >= rx) return push(); if(l >= rx || r <= lx) return; shift(); int mid = (lx + rx) >> 1; lc->upd(l, r), rc->upd(l, r); sum = lc->sum + rc->sum; } }; int main(){ cin.tie(0) -> sync_with_stdio(0); Node seg(0, inf); int q; cin >> q; int c = 0; while(q--){ int t, l, r; cin >> t >> l >> r; if(t == 1) cout << (c = seg.query(c + l - 1,c + r)) << '\n'; else seg.upd(c + l - 1,c + r); } return 0; }

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

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