数据结构
线段树
单点修改,区间和
ll tree[maxn << 2];
void build(int l, int r, int v) { memset(tree, v, sizeof(tree)); }
void update(int root, int left, int right, int pos, int k) {
if (pos < left || pos > right)
return;
if (left == right) {
tree[root] += k;
return;