【DPメニュー】> FINAL問題【最安値】最安値を達成するには 4 (paizaランク B 相当) [難易度: 1665 ±17]
※リンク先へ移動するためには[paiza]へのログインが必要です。
八百屋にて、りんご x 個が a 円で、りんご y 個が b 円で、りんご z 個が c 円で売られています。
りんごの買い方を工夫したとき、n 個のりんごを手に入れるために必要な金額の最小値はいくらでしょうか。なお、買い方を工夫した結果、買ったりんごが n+1 個以上になってもよいものとします。
入力値(例)
9 2 100 3 125 5 200
出力値(例)
375
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php list($n, $x, $a, $y, $b, $z, $c) = explode(" ", trim(fgets(STDIN))); $dp[0] = 0; for ($i = 1; $i <= ($n + $z); $i++) { $dp_a = $i > $x ? $dp[$i - $x] + $a : $a; $dp_b = $i > $y ? $dp[$i - $y] + $b : $b; $dp_c = $i > $z ? $dp[$i - $z] + $c : $c; $dp[$i] = min($dp_a, $dp_b, $dp_c); } echo $dp[$n]; ?> |