제출 #1010189

#제출 시각아이디문제언어결과실행 시간메모리
1010189somefjord벽 (IOI14_wall)C++17
0 / 100
6 ms8540 KiB
#include "wall.h" #include <bits/stdc++.h> using namespace std; constexpr int N = 1 << 21; struct SegTree { int seg[N]; int n; SegTree(int n) : n(n) {} void update(int l, int r, int h, bool op) { l += n; r += n; while (r > l) { if (l & 1) { if (op) { seg[l] = max(seg[l++], h); } else { seg[l] = min(seg[l++], h); } } if (r & 1) { if (op) { seg[--r] = max(seg[r], h); } else { seg[--r] = min(seg[r], h); } } l /= 2; r /= 2; } } int query(int i) { return seg[n + i]; } }; void buildWall(int n, int k, int op[], int left[], int right[], int height[], int finalHeight[]) { SegTree tr(n); for (int i = 0; i < k; ++i) { tr.update(left[i], right[i] + 1, height[i], op[i] == 1); } for (int i = 0; i < n; ++i) { finalHeight[i] = tr.query(i); } return; }

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

wall.cpp: In member function 'void SegTree::update(int, int, int, bool)':
wall.cpp:19:29: warning: operation on 'l' may be undefined [-Wsequence-point]
   19 |           seg[l] = max(seg[l++], h);
      |                            ~^~
wall.cpp:21:29: warning: operation on 'l' may be undefined [-Wsequence-point]
   21 |           seg[l] = min(seg[l++], h);
      |                            ~^~
wall.cpp:26:15: warning: operation on 'r' may be undefined [-Wsequence-point]
   26 |           seg[--r] = max(seg[r], h);
      |               ^~~
wall.cpp:28:15: warning: operation on 'r' may be undefined [-Wsequence-point]
   28 |           seg[--r] = min(seg[r], h);
      |               ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...