aizu_online_judge/dsl/dsl_3_d.rs
1use competitive::prelude::*;
2use competitive::{algebra::MinOperation, data_structure::QueueAggregation};
3
4#[verify::aizu_online_judge("DSL_3_D")]
5pub fn dsl_3_d(reader: impl Read, writer: impl Write) {
6 prepare_io!(reader, writer);
7 sc!(n, l, a: [u64; iter n]);
8 let mut que = QueueAggregation::<MinOperation<_>>::new();
9 let mut ans = Vec::with_capacity(n - l + 1);
10 for a in a {
11 que.push(a);
12 if que.len() == l {
13 ans.push(que.fold_all());
14 que.pop();
15 }
16 }
17 pp!(@it ans);
18}