#abc0133. [abc013_3]節制
[abc013_3]節制
問題文
セキュリティ意識が高く、最新鋭の錠を購入した高橋君ですが、財布の管理は甘かったらしくお金がピンチな状況です。
高橋君の収入は安定せず、次の収入があるのは今から 日後です。高橋君は 日間、できるだけ食費を抑えて節約生活を送ることにしました。
はじめ、高橋君の満腹度は です。 日間のそれぞれの日について、その日にとる食事を次の 種類の中から つ選びます。
- 普通の食事: 円の出費をして、満腹度が 増える。
- 質素な食事: 円の出費をして、満腹度が 増える。(ただし、 かつ )
- 食事抜き: 出費なしで、満腹度が 減る。
厳しく節約すれば出費を抑えることができますが、あまりに節約しすぎて体調を崩してしまってはいけないため、 日間で一度も満腹度が 以下にならないようにしなければなりません。
高橋君は最低何円の食費で 日間を乗り切ることができるでしょうか?
ただし、高橋君は超人級の胃袋を持っており、その満腹度には上限がないとする。すなわち、いくら食事をしても高橋君の満腹度が頭打ちになることはない。
入力
入力は以下の形式で標準入力から与えられる。
- 行目には、節約生活の日数を表す整数 () と、節約生活を始める前の高橋君の満腹度を表す整数 () が空白区切りで与えられる。
- 行目には、 種類の食事に関する情報を表す整数 , , , , がこの順に空白区切りで与えられる。
- 出費について、 が成り立つ。
- 満腹度の増減について、 および が成り立つ。
部分点
この問題には部分点が設定されている。
- を満たすテストケース全てに正解すると、部分点として 点が与えられる。
- , , , を満たすテストケースすべてに正解すると、部分点として 点が与えられる。( を満たすテストケース全てにも正解していた場合は合計で 点となる)
- を満たすテストケース全てに正解すると、 点が与えられる。
- 全てのテストケースに正解すると、ボーナス点として追加で 点が与えられる。
ボーナス点に対応するテストケースに関しては、答えが ビットの整数型に収まらない可能性があることに注意せよ。
出力
高橋君が満腹度を一度も 以下にせずに 日間の節約生活を乗り切るために必要な食費の最小値が何円かを 行に出力せよ。
出力の末尾には改行をいれること。
入力例1
4 5
100 4 60 1 4
出力例1
160
たとえば、 日間の食事を以下のようにすれば 円の出費で済ませることができます。
- 節約生活を始める前、高橋君の満腹度は である。
- 日目には質素な食事をとる。 円を出費して、満腹度が 増えて になる。
- 日目は食事を抜く。出費はなく、満腹度は 減って になる。
- 日目には普通の食事をとる。 円を出費して、満腹度が 増えて になる。
- 日目は食事を抜く。出費はなく、満腹度は 減って になる。
入力例2
10 1
5000 2 2000 1 300
出力例2
20000
この例では、高橋君は 日食事を抜くと満腹度が も減ってしまうので、毎日食事をとる必要があります。
質素な食事を 日間とり続けることで 円の出費となり、これが最小の出費になります。
入力例3
9 23
170 8 120 5 12
出力例3
650
入力例4
653 314159
6728 123456 5141 41928 222222
出力例4
2818162
この例は という 点の部分点の制約および , , , という 点の部分点の制約を満たしていないことに注意せよ。