We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 764c814 commit 4d0dc0bCopy full SHA for 4d0dc0b
src/segtree.rs
@@ -127,7 +127,7 @@ impl<M: Monoid> From<Vec<M::S>> for Segtree<M> {
127
let log = ceil_pow2(n as u32) as usize;
128
let size = 1 << log;
129
let mut d = vec![M::identity(); 2 * size];
130
- d[size..(size + n)].clone_from_slice(&v);
+ d[size..][..n].clone_from_slice(&v);
131
let mut ret = Segtree { n, size, log, d };
132
for i in (1..size).rev() {
133
ret.update(i);
@@ -170,6 +170,10 @@ impl<M: Monoid> Segtree<M> {
170
self.d[p + self.size].clone()
171
}
172
173
+ pub fn get_slice(&self) -> &[M::S] {
174
+ &self.d[self.size..][..self.n]
175
+ }
176
+
177
pub fn prod<R>(&self, range: R) -> M::S
178
where
179
R: RangeBounds<usize>,
0 commit comments