Skip to content

Commit 8a6304f

Browse files
committed
nit
1 parent 638eb9c commit 8a6304f

3 files changed

Lines changed: 8 additions & 10 deletions

File tree

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
int walk(int l, int r, const auto& f) {
2+
T x = unit;
23
while (l < r) {
3-
int u = l + n, x = __lg(min(u & -u, r - l));
4-
if (f(s[u >> x])) l += 1 << x;
5-
else r = l + (1 << x) - 1;
4+
int u = l + n, v = __lg(min(u & -u, r - l));
5+
if (T y = op(x, s[u >> v]); f(y)) x = y, l += 1 << v;
6+
else r = l + (1 << v) - 1;
67
}
78
return l;
89
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
int walk(int l, int r, const auto& f) {
22
while (l <= r) {
3-
int u = l + n, x = __lg(min(u & -u, r - l + 1));
4-
if (f(s[u >> x])) l += 1 << x;
5-
else r = l + (1 << x) - 2;
3+
int u = l + n, v = __lg(min(u & -u, r - l + 1));
4+
if (f(s[u >> v])) l += 1 << v;
5+
else r = l + (1 << v) - 2;
66
}
77
return l;
88
}

tests/library_checker_aizu_tests/data_structures/simple_tree_walk.test.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,8 @@ int main() {
3131
if (total == 0) {
3232
cout << -1 << '\n';
3333
} else {
34-
int pref_sum = 0;
3534
cout << st.walk(0, k + 1, [&](int sum) {
36-
if (pref_sum + sum < total)
37-
return pref_sum += sum, 1;
38-
return 0;
35+
return sum < total;
3936
}) << '\n';
4037
}
4138
}

0 commit comments

Comments
 (0)