Submission #1232340

#TimeUsernameProblemLanguageResultExecution timeMemory
1232340nguyenkhangninh99벽 (IOI14_wall)C++20
100 / 100
435 ms66948 KiB
#include <bits/stdc++.h> #include "wall.h" using namespace std; const int maxn = 2e6 + 5; int stl[4 * maxn], str[4 * maxn], res[maxn]; void app(int i, int xl, int xr) { stl[i] = min(max(stl[i], xl), xr); str[i] = min(max(str[i], xl), xr); } void push(int id){ app(id * 2, stl[id], str[id]); app(id * 2 + 1, stl[id], str[id]); stl[id] = 0; str[id] = 1e5; } void update(int u, int v, int xl, int xr, int id, int l, int r){ if(l > v || r < u) return; if(u <= l && r <= v) app(id, xl, xr); else{ int mid = (l + r) / 2; push(id); update(u, v, xl, xr, id * 2, l, mid); update(u, v, xl, xr, id * 2 + 1, mid + 1, r); } } void build(int id, int l, int r){ if(l == r) res[l] = stl[id]; else{ int mid = (l + r) / 2; push(id); build(id * 2, l, mid); build(id * 2 + 1, mid + 1, r); } } void buildWall(int n, int k, int op[], int l[], int r[], int h[], int ans[]) { for(int i = 0; i < k; i++) update(l[i], r[i], op[i] ^ 2 ? h[i] : 0, op[i] ^ 1 ? h[i] : 1e5, 1, 0, n - 1); build(1, 0, n - 1); for(int i = 0; i < n; i++) ans[i] = res[i]; } /* signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, k; cin >> n >> k; while(k--){ int op, l, r, h; cin >> op >> l >> r >> h; update(l, r, op ^ 2 ? h : 0, op ^ 1 ? h : 1e5, 1, 0, n - 1); } build(1, 0, n - 1); } */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...