제출 #336102

#제출 시각아이디문제언어결과실행 시간메모리
336102nikatamliani돌 무게 재기 (IZhO11_stones)C++14
100 / 100
330 ms4620 KiB
#include <bits/stdc++.h> #define mn first #define mx second using namespace std; const int N = 1e5+10; pair<int,int> tree[4*N]; int lazy[4*N]; void push(int l, int r, int p) { if(l < r) { lazy[p << 1] += lazy[p]; lazy[p << 1 | 1] += lazy[p]; } tree[p].mn += lazy[p]; tree[p].mx += lazy[p]; lazy[p] = 0; } void add(int l, int r, int L, int R, int val, int p) { push(l, r, p); if(l > R || L > r) return; if(L <= l && R >= r) { lazy[p] += val; push(l, r, p); } else { int m = l + r >> 1; add(l, m, L, R, val, p << 1); add(m+1, r, L, R, val, p << 1 | 1); tree[p].mn = min(tree[p << 1].mn, tree[p << 1 | 1].mn); tree[p].mx = max(tree[p << 1].mx, tree[p << 1 | 1].mx); } } int main() { int n; cin >> n; for(int i = 1; i <= n; ++i) { int x, where; cin >> x >> where; if(where == 1) { add(1, n, 1, x, 1, 1); } else { add(1, n, 1, x, -1, 1); } if(tree[1].mn >= 0) { cout << ">\n"; } else if(tree[1].mx <= 0) { cout << "<\n"; } else { cout << "?\n"; } } }

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

stones.cpp: In function 'void add(int, int, int, int, int, int)':
stones.cpp:24:19: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   24 |         int m = l + r >> 1;
      |                 ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...