aizu_online_judge/dpl/
dpl_1_a.rs

1use competitive::prelude::*;
2
3#[verify::aizu_online_judge("DPL_1_A")]
4pub fn dpl_1_a(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, m, c: [usize; m]);
8    let mut dp = vec![usize::MAX; n + 1];
9    dp[0] = 0;
10    for c in c {
11        for i in c..=n {
12            dp[i] = (dp[i - c] + 1).min(dp[i]);
13        }
14    }
15    writeln!(writer, "{}", dp[n]).ok();
16}