제출 #779131

#제출 시각아이디문제언어결과실행 시간메모리
779131fatemetmhr벽 (IOI14_wall)C++17
61 / 100
562 ms35824 KiB
// ~ Be Name Khoda ~ // #include "wall.h" #include <bits/stdc++.h> //#pragma GCC optimize ("O3") //#pragma GCC target("avx2") //#pragma GCC optimize("unroll-loops,Ofast") using namespace std; typedef long long ll; #define pb push_back #define mp make_pair #define all(x) x.begin(), x.end() #define fi first #define se second const int maxn = 8e6 + 10; const int maxn5 = 2e6 + 10; const int maxnt = 1.2e6 + 10; const int maxn3 = 1e3 + 10; const int mod = 1e9 + 7; const ll inf = 1e18; void upd(int, int, int, int, int, int, int); int ret[maxn5], segl[maxnt], segr[maxnt]; void shift(int l, int mid, int r, int v){ upd(l, mid, l, mid, 1, segl[v], v * 2); upd(l, mid, l, mid, 2, segr[v], v * 2); upd(mid, r, mid, r, 1, segl[v], v * 2 + 1); upd(mid, r, mid, r, 2, segr[v], v * 2 + 1); segl[v] = 0; segr[v] = mod; } void upd(int l, int r, int lq, int rq, int ty, int k, int v){ if(rq <= l || r <= lq) return; if(lq <= l && r <= rq){ if(ty == 1){ segl[v] = max(segl[v], k); segr[v] = max(segr[v], segl[v]); } else{ segr[v] = min(segr[v], k); segl[v] = min(segl[v], segr[v]); } return; } int mid = (l + r) >> 1; shift(l, mid, r, v); upd(l, mid, lq, rq, ty, k, v * 2); upd(mid, r, lq, rq, ty, k, v * 2 + 1); } void shift_all(int l, int r, int v){ if(r - l == 1){ ret[l] = segl[v]; return; } int mid = (l + r) >> 1; shift(l, mid, r, v); shift_all(l, mid, v * 2); shift_all(mid, r, v * 2 + 1); } void buildWall(int n, int k, int op[], int left[], int right[], int height[], int finalHeight[]){ fill(segl, segl + maxnt, 0); fill(segr, segr + maxnt, mod); for(int i = 0; i < k; i++) upd(0, n, left[i], right[i] + 1, op[i], height[i], 1); shift_all(0, n, 1); for(int i = 0; i < n; i++) finalHeight[i] = ret[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...