제출 #1010194

#제출 시각아이디문제언어결과실행 시간메모리
1010194somefjord벽 (IOI14_wall)C++17
0 / 100
88 ms22100 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); } l++; } if (r & 1) { r--; 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; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...