Skip to main content

aizu_online_judge/dsl/
dsl_3_a.rs

1use competitive::prelude::*;
2use competitive::{algebra::AdditiveOperation, data_structure::QueueAggregation};
3
4#[verify::aizu_online_judge("DSL_3_A")]
5pub fn dsl_3_a(reader: impl Read, writer: impl Write) {
6    prepare_io!(reader, writer);
7    sc!(n, s: u64, a: [u64; iter n]);
8    let mut que = QueueAggregation::<AdditiveOperation<_>>::new();
9    let mut ans = usize::MAX;
10    for a in a {
11        que.push(a);
12        while que.fold_all() >= s {
13            ans = ans.min(que.len());
14            que.pop();
15        }
16    }
17    pp!(if ans == usize::MAX { 0 } else { ans });
18}