This documentation is automatically generated by online-judge-tools/verification-helper
use crate::SegmentTree;
pub struct RangeMinimumQuery;
impl RangeMinimumQuery {
pub fn new(n: usize) -> SegmentTree<i64> {
SegmentTree::new(n, |a, b| std::cmp::min(a, b), i64::MAX)
}
}
pub struct RangeMaximumQuery;
impl RangeMaximumQuery {
pub fn new(n: usize) -> SegmentTree<i64> {
SegmentTree::new(n, |a, b| std::cmp::max(a, b), i64::MIN)
}
}
pub struct RangeSumQuery;
impl RangeSumQuery {
pub fn new(n: usize) -> SegmentTree<i64> {
SegmentTree::new(n, |a, b| a + b, 0)
}
}
pub struct ParenthesisCheckQuery;
impl ParenthesisCheckQuery {
pub fn new(n: usize) -> SegmentTree<(i64, i64)> {
SegmentTree::new(n, |a, b| (a.0 + std::cmp::max(b.0 - a.1, 0), std::cmp::max(a.1 - b.0, 0) + b.1), (0, 0))
}
pub fn new_build(n: usize, s: &Vec<char>) -> SegmentTree<(i64, i64)> {
let mut st = SegmentTree::new(n, |a, b| (a.0 + std::cmp::max(b.0 - a.1, 0), std::cmp::max(a.1 - b.0, 0) + b.1), (0, 0));
for i in 0..s.len() {
st.set(
i,
match s[i] {
'(' => (0, 1),
')' => (1, 0),
_ => unreachable!(),
},
);
}
st
}
}
/*
// reference: https://atcoder.jp/contests/abc223/editorial/2774
pub struct ParenthesisCheckQuery;
impl ParenthesisCheckQuery {
pub fn new(n: usize) -> SegmentTree<(i64, i64)> {
SegmentTree::new(n, |a, b| (std::cmp::min(a.0, a.1 + b.0), a.1 + b.1), (0, 0))
}
pub fn new_build(n: usize, s: &Vec<char>) -> SegmentTree<(i64, i64)> {
let mut st = SegmentTree::new(n, |a, b| (a.0 + std::cmp::max(b.0 - a.1, 0), std::cmp::max(a.1 - b.0, 0) + b.1), (0, 0));
for i in 0..s.len() {
st.set(
i,
match s[i] {
'(' => (0, 0),
')' => (-1, -1),
_ => unreachable!(),
},
);
}
st
}
}
*/
pub struct RangeCompositeQuery;
impl RangeCompositeQuery {
pub fn new(n: usize) -> SegmentTree<(i64, i64)> {
SegmentTree::new(n, |a, b| (a.0 * b.0, a.1 * b.0 + b.1), (1, 0))
}
}
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.11.12/x64/lib/python3.11/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat
bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.11.12/x64/lib/python3.11/site-packages/onlinejudge_verify/languages/rust.py", line 288, in bundle
raise NotImplementedError
NotImplementedError