atcoder#ABC261D. [ABC261D] Flipping and Bonus
[ABC261D] Flipping and Bonus
题目描述
高橋君が 回コイントスを行います。 また、高橋君はカウンタを持っており、最初カウンタの数値は です。
回目のコイントスで表裏のどちらが出たかによって、次のことが起こります。
- 表が出たとき:高橋君はカウンタの数値を 増やし、 円もらう。
- 裏が出たとき:高橋君はカウンタの数値を に戻す。お金をもらうことは出来ない。
また、 種類の連続ボーナスがあり、 種類目の連続ボーナスではカウンタの数値が になるたびに 円もらうことができます。
高橋君は最大で何円もらうことができるかを求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
高橋君がもらうことのできる金額の最大値を整数で出力せよ。
题目大意
高桥会掷 次硬币,他还有一个计数器,初始示数为0。
对于第 次掷硬币的结果,高桥会做出如下行为:
- 如果此次硬币为正面,高桥会将计数器 +1,并且获取 元。
- 如果此次硬币为反面,他会将计数器清零,不收到钱。
另外,有 种额外连胜奖励。对于第 种连胜奖励,每当计数器示数为 时,奖励 元。
输出高桥的最大收益。
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
提示
制約
- はすべて異なる。
- 入力はすべて整数
Sample Explanation 1
順に 表, 表, 裏, 表, 表, 表 が出た時、もらえる金額は次のようになります。 - 回目のコイントスで表が出る。カウンタの数値を から にして、 円もらう。 - 回目のコイントスで表が出る。カウンタの数値を から にして、 円もらう。さらに、連続ボーナスとして 円もらう。 - 回目のコイントスで裏が出る。カウンタの数値を から にする。 - 回目のコイントスで表が出る。カウンタの数値を から にして、 円もらう。 - 回目のコイントスで表が出る。カウンタの数値を から にして、 円もらう。さらに、連続ボーナスとして 円もらう。 - 回目のコイントスで表が出る。カウンタの数値を から にして、 円もらう。さらに、連続ボーナスとして 円もらう。 このとき高橋君は合計で 円もらうことができ、このときが最大です。 連続ボーナスはカウンタの数値が になるたびに何度でももらえることに注意してください。 ちなみに、 回のコイントスで全部表が出た時は 円しかもらうことが出来ず、この時は最大ではありません。
Sample Explanation 2
答えが bit 整数型に収まらないこともあることに注意してください。