segment add point
unknown
c_cpp
10 days ago
749 B
5
Indexable
#include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 5; int n, seg[MAXN * 4]; void add(int idx, int x, int ind = 1, int l = 0, int r = n) { if(r <= idx || idx < l) return; if(r - l == 1) { seg[ind] = x; return; } int mid = (l + r) >> 1; add(idx, x, ind * 2 + 0, l, mid); add(idx, x, ind * 2 + 1, mid, r); seg[ind] = max(seg[ind * 2 + 0], seg[ind * 2 + 1]); } int get(int lq, int rq, int ind = 1, int l = 0, int r = n) { if(rq <= l || r <= lq) return 0; if(lq <= l && r <= rq) return seg[ind]; int mid = (l + r) >> 1; return max(get(lq, rq, ind * 2 + 0, l, mid), get(lq, rq, ind * 2 + 1, mid, r)); } int main() { ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0); }
Editor is loading...
Leave a Comment