Skip to content

Commit 8de49c6

Browse files
committed
add const to several atcoder::segtree methods
1 parent 2b1437c commit 8de49c6

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

atcoder/segtree.hpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ template <class S, S (*op)(S, S), S (*e)()> struct segtree {
3030
for (int i = 1; i <= log; i++) update(p >> i);
3131
}
3232

33-
S get(int p) {
33+
S get(int p) const {
3434
assert(0 <= p && p < _n);
3535
return d[p + size];
3636
}
3737

38-
S prod(int l, int r) {
38+
S prod(int l, int r) const {
3939
assert(0 <= l && l <= r && r <= _n);
4040
S sml = e(), smr = e();
4141
l += size;
@@ -50,12 +50,12 @@ template <class S, S (*op)(S, S), S (*e)()> struct segtree {
5050
return op(sml, smr);
5151
}
5252

53-
S all_prod() { return d[1]; }
53+
S all_prod() const { return d[1]; }
5454

55-
template <bool (*f)(S)> int max_right(int l) {
55+
template <bool (*f)(S)> int max_right(int l) const {
5656
return max_right(l, [](S x) { return f(x); });
5757
}
58-
template <class F> int max_right(int l, F f) {
58+
template <class F> int max_right(int l, F f) const {
5959
assert(0 <= l && l <= _n);
6060
assert(f(e()));
6161
if (l == _n) return _n;
@@ -79,10 +79,10 @@ template <class S, S (*op)(S, S), S (*e)()> struct segtree {
7979
return _n;
8080
}
8181

82-
template <bool (*f)(S)> int min_left(int r) {
82+
template <bool (*f)(S)> int min_left(int r) const {
8383
return min_left(r, [](S x) { return f(x); });
8484
}
85-
template <class F> int min_left(int r, F f) {
85+
template <class F> int min_left(int r, F f) const {
8686
assert(0 <= r && r <= _n);
8787
assert(f(e()));
8888
if (r == 0) return 0;

0 commit comments

Comments
 (0)