in rlmeta/cc/segment_tree.h [148:167]
T Query(int64_t l, int64_t r) const {
assert(l < r);
if (l <= 0 && r >= size_) {
return values_[1];
}
T ret = identity_element_;
l |= capacity_;
r |= capacity_;
while (l < r) {
if (l & 1) {
ret = op_(ret, values_[l++]);
}
if (r & 1) {
ret = op_(ret, values_[--r]);
}
l >>= 1;
r >>= 1;
}
return ret;
}