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: