summaryrefslogtreecommitdiff
path: root/datastructures/waveletTree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'datastructures/waveletTree.cpp')
-rw-r--r--datastructures/waveletTree.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/datastructures/waveletTree.cpp b/datastructures/waveletTree.cpp
index c211b0f..476658e 100644
--- a/datastructures/waveletTree.cpp
+++ b/datastructures/waveletTree.cpp
@@ -8,12 +8,12 @@ struct WaveletTree {
WaveletTree(it from, it to) : // call above one
lo(*min_element(from, to)), hi(*max_element(from, to) + 1) {
- if (lo + 1 >= hi) return;
ll mid = (lo + hi) / 2;
- auto f = [&](ll x){return x < mid;};
+ auto f = [&](ll x) {return x < mid;};
for (it c = from; c != to; c++) {
b.push_back(b.back() + f(*c));
}
+ if (lo + 1 >= hi) return;
it pivot = stable_partition(from, to, f);
ln = new WaveletTree(from, pivot);
rn = new WaveletTree(pivot, to);
@@ -32,8 +32,8 @@ struct WaveletTree {
int countSmaller(int l, int r, ll k) {
if (l >= r || k <= lo) return 0;
if (hi <= k) return r - l;
- return ln->countSmaller(b[l], b[r], k) +
- rn->countSmaller(l-b[l], r-b[r], k);
+ return ln->countSmaller(b[l], b[r], k) +
+ rn->countSmaller(l-b[l], r-b[r], k);
}
~WaveletTree() {delete ln; delete rn;}