問題のポイント
「3個セット」か「単品」で買うのかの場合わけを行うことです。(場合分けをしないでも解けそうな感じはしていますが。。)
私は、問題を最後まで読まずに解き始めてしまい、3個セットの方が価格が高くなる場合を見逃してしまっていました。。。
入力例
10 25 10
回答例
#include< bits/stdc++.h >
using namespace std;
int main() {
int x, y, n;
cin >> x >> y >> n;
if (n <= 2) { // 欲しいりんごが2個以下...(A)
cout << n * x << endl;
return 0;
}
if (3*x > y) { // 可能な限り3個セットで購入した方が安い場合...(B)
int set = n / 3; // 3個セットを何個買うべきかを計算
int ans = set * y;
int m = n - (3 * set); // 3個セットで買いきれない個数
ans += m*x;
cout << ans << endl;
return 0;
}
cout << n * x << endl; // (A)でも(B)でもない場合(3個セットが損する場合)
return 0;
}
コメント