Official
A - Cabbages Editorial by leaf1415
\(N\) が \(A\) より大きいかどうかで場合分けして考えます。
1) \(N \leq A\) のとき
\(N\) 個のキャベツそれぞれについて、 \(1\) 個あたり \(X\) 円かかるので、\(N\) 個のキャベツを買うのにかかる金額は \(NX\) 円です。
2) \(N>A\) のとき
- \(1\) 個目から \(A\) 個目までに買うキャベツについて、\(1\) 個あたり \(X\) 円かかるので、合計で \(AX\) 円かかります。
- \(A+1\) 個目以降に買うキャベツについて、\(1\) 個あたり \(Y\) 円かかるので、合計で \((N-A)Y\) 円かかります。
よって、\(N\) 個のキャベツを買うのにかかる金額は、\(AX + (N-A)Y\) 円です。
上記の場合分けを実装するには、プログラミング言語の「条件分岐」の機能を用います。C++言語では、例えばif文が条件分岐の機能を実現します。
以下に、C++言語を用いたこの問題の正解例を記載します。
#include <iostream>
using namespace std;
int main(void)
{
int n, a, x, y;
cin >> n >> a >> x >> y;
if(n <= a) cout << n*x << endl;
else cout << a*x + (n-a)*y << endl;
return 0;
}
posted:
last update: