aizu_online_judge/dsl/
dsl_3_c.rs

1use competitive::prelude::*;
2
3#[verify::aizu_online_judge("DSL_3_C")]
4pub fn dsl_3_c(reader: impl Read, mut writer: impl Write) {
5    let s = read_all_unchecked(reader);
6    let mut scanner = Scanner::new(&s);
7    scan!(scanner, n, q, a: [u64; n], x: [u64]);
8    for x in x.take(q) {
9        let mut ans = 0;
10        let mut sum = 0;
11        let mut l = 0;
12        for (r, &b) in a.iter().enumerate() {
13            sum += b;
14            while sum > x {
15                sum -= a[l];
16                l += 1;
17            }
18            ans += r + 1 - l;
19        }
20        writeln!(writer, "{}", ans).ok();
21    }
22}