はじめに
整数除算や剰余の学習ができる問題です。
問題
https://atcoder.jp/contests/arc056/tasks/arc056_a
方針
- 単品で買う
- セットで買う(みかんが余ってもOK)
- 端数が出ないようにセットを買い、残りは単品で買う
ポイント
セットでぴったり買い切れるケースをパターン3に含めると、実装が楽。
(単品で買う必要がある部分が0
だった、と考える)
パターン1 単品で買う
これは簡単。
1 | K * A |
パターン2 セットで買う
整数除算を行い、1を加えたものにセット価格をかける。
これでは、セットでぴったり買い切れるケースを考慮できていないが、
それはパターン3に含める。
1 | ( K//L + 1 ) * B |
パターン3 端数が出ないようにセットを買い、残りは単品で買う
先ほどの要領で、セットの小計を求め、
1 | K //L * B |
残りを単品で揃えれば良い。
1 | (K % L) * A |
コード
1 | A, B, K, L = map(int, input().split()) |