diff --git a/trees/segtree_generic.cc b/trees/segtree_generic.cc index da82d72..69d15cd 100644 --- a/trees/segtree_generic.cc +++ b/trees/segtree_generic.cc @@ -1,4 +1,3 @@ - template> class segtree { private: using size_type = uint64_t; @@ -27,7 +26,7 @@ private: if (s != t) push(p, m - s + 1, t - m); if (x <= m) set(s, m, p * 2, x, c); else set(m + 1, t, p * 2 + 1, x, c); - d[p] = d[p * 2] + d[p * 2 + 1]; + pull(p); } void range_apply(size_type s, size_type t, size_type p, size_type l, size_type r, const tag_type& c) { @@ -123,4 +122,3 @@ struct Info { Info operator+(const Info &a, const Info &b) { return {a.val + b.val}; } -