Submission #1243111

#TimeUsernameProblemLanguageResultExecution timeMemory
1243111asdfghqwertSum Zero (RMI20_sumzero)C++20
0 / 100
0 ms320 KiB
#pragma GCC optimize("O3,Ofast") #include <bits/stdc++.h> //#define int long long using namespace std; int n , vmax , v2; vector<int> arr; struct Segtree{ int n; vector<int> lzy , mn , mx; Segtree(int _n){ n = _n; mn.resize(n << 2); mx.resize(n << 2); lzy.resize(n << 2); } inline void push(int v){ if(lzy[v] != 0){ mn[v << 1] += lzy[v]; mn[v << 1 | 1] += lzy[v]; mx[v << 1] += lzy[v]; mx[v << 1 | 1] += lzy[v]; lzy[v << 1] += lzy[v]; lzy[v << 1 | 1] += lzy[v]; lzy[v] = 0; } } void Build(const vector<int> &arr , int v , int l , int r){ if(l == r){ mn[v] = arr[l]; mx[v] = arr[l]; return ; } int mid = (l + r) / 2; Build(arr , v << 1 ,l , mid); Build(arr , v << 1 | 1 , mid + 1 , r); mn[v] = min(mn[v << 1 | 1] , mn[v << 1]); mx[v] = max(mx[v << 1 | 1] , mx[v << 1]); } int val , ql; int findRmx(int v , int l , int r){ if(mx[v] < val || r < ql)return -1; if(l == r)return l; push(v); int mid = (l + r) >> 1; int ans = findRmx(v << 1 , l , mid); if(ans != -1)return ans; return findRmx(v << 1 | 1 , mid + 1 , r); } int findRmn(int v , int l , int r){ if(mn[v] > val || r < ql)return -1; if(l == r)return l; push(v); int mid = (l + r) >> 1; int ans = findRmn(v << 1 , l , mid); if(ans != -1)return ans; return findRmn(v << 1 | 1 , mid + 1 , r); } int L , R , d; void update(int v , int l , int r){ if(r < L || R < l)return; if(L <= l && r <= R){ mn[v] += d; mx[v] += d; lzy[v] += d; return; } push(v); int mid = (l + r) >> 1; update(v << 1 , l , mid); update(v << 1 | 1 , mid + 1 , r); mn[v] = min(mn[v << 1] , mn[v << 1 | 1]); mx[v] = max(mx[v << 1] , mx[v << 1 | 1]); } int pos ; int point(int v , int l , int r){ if(l == r)return mn[v]; int mid = (l + r) >> 1; if(mid <= pos)return point(v << 1 , l , mid); return point(v << 1| 1, mid + 1, r); } }; int32_t main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << "4 2 2"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...