segment add point
unknown
c_cpp
7 months ago
749 B
8
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