Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;#define rep(i) for(int i=0;i<2;i++)template <typename T=int>struct Segtree {int n; // leaf [n, 2n), view as original [0, n)int sz_v;const T ID;vector<T> v; //treeSegtree(int _n = 100005) : n(_n), sz_v(n<<1), ID() {v.resize(sz_v);}void init() {// set leaf valuefor (int i = 0; i < n; i++) {// v[i+n] = raw[i];}build();}void build() {for (int i = n-1; i >= 0; i--) {v[i] = v[i<<1] + v[i<<1|1];}}inline void update(int p, T val) {assert(p>=0);for (v[p += n] = val; p >>= 1;) {v[p] = v[p<<1] + v[p<<1|1];}