Skip to main content

library_checker/data_structure/
static_range_sum.rs

1use competitive::prelude::*;
2use competitive::{algebra::AdditiveOperation, data_structure::Accumulate};
3
4#[verify::library_checker("static_range_sum")]
5pub fn static_range_sum(reader: impl Read, writer: impl Write) {
6    prepare_io!(reader, writer);
7    sc!(n, q, a: [i64; iter n]);
8    let acc: Accumulate<AdditiveOperation<i64>> = a.collect();
9    sc!(lr: [(usize, usize); iter q]);
10    for (l, r) in lr {
11        pp!(acc.fold(l..r));
12    }
13}