We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 01eabf5 commit 8c0ff8bCopy full SHA for 8c0ff8b
library/data_structures/seg_tree_uncommon/merge_sort_tree.hpp
@@ -2,15 +2,13 @@
2
#include "../lazy_seg_tree_midpoint.hpp"
3
struct merge_sort_tree {
4
int n;
5
- vector<vi> tree;
+ vector<basic_string<int>> tree;
6
merge_sort_tree(const vi& a): n(sz(a)), tree(2 * n) {
7
int pw2 = bit_ceil(size(a));
8
rep(i, 0, n) tree[(i + pw2) % n + n] = {a[i]};
9
for (int i = n - 1; i >= 1; i--) {
10
- tree[i].resize(
11
- sz(tree[2 * i]) + sz(tree[2 * i + 1]));
12
ranges::merge(tree[2 * i], tree[2 * i + 1],
13
- begin(tree[i]));
+ back_inserter(tree[i]));
14
}
15
16
//! count of i in [l, r) such that a[i] in [vl, vr)
0 commit comments