3-1:遠足 解説


この問題は、動的計画法を使用することで解くことができます。

まず、駄菓子を順番に見ていき、\(i\) 番目まで選んだ時に、\(j\) 円で買えるかを判定します。

例えば入力例1だと、1個目まで選ぶと使用できる金額は0円、10円になります。2個目まで選ぶと、0円から派生する金額は0円、20円、10円から派生する金額は10円、30円となります。

ここで、\(M\) 円を超える金額は記録しないようにしましょう。

こうすることで、\(2^N\) 通りを試さずに、\(O(NM)\) で求められます。

実装例