[][src]Module prcn_lib::segment_tree

Varified

Usage

monoid_def!(Mm, std::i32::MAX, |x, y| { min(x, y) }); monoid_def!(Max, std::usize::MIN, |x, y| { max(x, y) }); #[test] fn debug() { let mut s = SegmentTree::::new(&[Max(1usize), Max(2), Max(3), Max(2), Max(1), Max(3), Max(1)]); dbg!(&s); s.update(7, Max(100)); dbg!(&s); } #[test] fn get() { let s = SegmentTree::::new(&[Max(1usize), Max(2), Max(3), Max(2), Max(1), Max(3), Max(1)]); dbg!(&s); assert_eq!(s.range(0, 2).0, 2); assert_eq!(s.range(3, 6).0, 3); assert_eq!(s.range(0, 8).0, 3); }

Structs

SegmentTree