https://atcoder.jp/contests/yahoo-procon2019-qual/tasks/yahoo_procon2019_qual_c
円は残しておいても最終的なビスケットの枚数の最大値には寄与しない。また、使い道はビスケットB枚に交換することのみ。
よって、Kアクション与えられた際、
- 1アクション使って、ビスケットを1枚増やす
- 2アクション使って、ビスケットA枚をビスケットB枚に交換する
この二つの選択の組み合わせでビスケットの枚数を最大化する、という問題に帰着される。
一つ目の行動を二回繰り返すとビスケットが2枚増える、ということは B>A+2でないと二つ目の行動をする意味がない。
- B>A+2であったら二つ目の行動の方が効率が良いので、一つ目の行動でビスケットをA枚まで増やした後二つ目の行動を繰り返し、アクションが最後に1残ったら最後にもう一枚増やす
- B≤A+2だったら一つ目の行動を連打
で良い。後はkとaの大小関係に注意すればOK
https://atcoder.jp/contests/yahoo-procon2019-qual/submissions/31952356