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}