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}