We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 75ed507 commit 65e98b9Copy full SHA for 65e98b9
library/data_structures_[l,r]/seg_tree_uncommon/walk.hpp
@@ -1,14 +1,13 @@
1
int walk(int l, int r, const auto& f) {
2
- for (int u = l + n, v = __lg(min(u & -u, r - l + 1)); v >= 0; v--) {
3
- if (T x = s[u >> v]; f(x)) {
4
- l += 1 << v;
5
- while (l <= r) {
6
- u = l + n, v = __lg(min(u & -u, r - l + 1));
7
- if (T y = op(x, s[u >> v]); f(y)) l += 1 << v, x = y;
+ l += n, r += n;
+ for (int v = __lg(min(l & -l, r - l + 1)); v >= 0; v--)
+ if (T x = s[l >> v]; f(x)) {
+ for (l += 1 << v; l <= r;) {
+ v = __lg(min(l & -l, r - l + 1));
+ if (T y = op(x, s[l >> v]); f(y)) l += 1 << v, x = y;
8
else r = l + (1 << v) - 2;
9
}
10
break;
11
- } else r = l + (1 << v) - 2;
12
- }
13
- return l;
+ }
+ return l - n;
14
0 commit comments