Skip to content

Commit 4db7b00

Browse files
authored
Fix boundary condition in segment tree walk function
1 parent 0f954e4 commit 4db7b00

File tree

1 file changed

+2
-2
lines changed
  • library/data_structures_[l,r]/seg_tree_uncommon

1 file changed

+2
-2
lines changed

library/data_structures_[l,r]/seg_tree_uncommon/walk.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ int walk(int l, int r, const auto& f) {
1414
}
1515
*/
1616
while (l <= r) {
17-
int u = l + n, x = __lg(min(u & -u, r - l + 1));
18-
if (f(s[u >> x])) r = l + (1 << x) - 2;
17+
int u = l + n, x = __lg(min(u & -u, int(bit_ceil(r - l + 1u)-1));
18+
if (f(s[u >> x])) r = l + (1 << x) - 1;
1919
else l += 1 << x;
2020
}
2121
return -1;

0 commit comments

Comments
 (0)