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}