atcoder#ABC261D. [ABC261D] Flipping and Bonus
[ABC261D] Flipping and Bonus
配点 : 点
問題文
高橋君が 回コイントスを行います。 また、高橋君はカウンタを持っており、最初カウンタの数値は です。
回目のコイントスで表裏のどちらが出たかによって、次のことが起こります。
- 表が出たとき:高橋君はカウンタの数値を 増やし、 円もらう。
- 裏が出たとき:高橋君はカウンタの数値を に戻す。お金をもらうことは出来ない。
また、 種類の連続ボーナスがあり、 種類目の連続ボーナスではカウンタの数値が になるたびに 円もらうことができます。
高橋君は最大で何円もらうことができるかを求めてください。
制約
- はすべて異なる。
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
出力
高橋君がもらうことのできる金額の最大値を整数で出力せよ。
6 3
2 7 1 8 2 8
2 10
3 1
5 5
48
順に 表, 表, 裏, 表, 表, 表 が出た時、もらえる金額は次のようになります。
- 回目のコイントスで表が出る。カウンタの数値を から にして、 円もらう。
- 回目のコイントスで表が出る。カウンタの数値を から にして、 円もらう。さらに、連続ボーナスとして 円もらう。
- 回目のコイントスで裏が出る。カウンタの数値を から にする。
- 回目のコイントスで表が出る。カウンタの数値を から にして、 円もらう。
- 回目のコイントスで表が出る。カウンタの数値を から にして、 円もらう。さらに、連続ボーナスとして 円もらう。
- 回目のコイントスで表が出る。カウンタの数値を から にして、 円もらう。さらに、連続ボーナスとして 円もらう。
このとき高橋君は合計で 円もらうことができ、このときが最大です。 連続ボーナスはカウンタの数値が になるたびに何度でももらえることに注意してください。 ちなみに、 回のコイントスで全部表が出た時は 円しかもらうことが出来ず、この時は最大ではありません。
3 2
1000000000 1000000000 1000000000
1 1000000000
3 1000000000
5000000000
答えが bit 整数型に収まらないこともあることに注意してください。