segment add point

 avatar
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