けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

JOI 予選 2015 A - 水道料金 (AOJ 0608) (8Q, 難易度 1)

価格系の問題!

問題概要

水道を  P リットル使用する。X 社と Y 社の料金体系は次のようになっている。

  • X 社:1 リットルあたり  A 円かかる
  • Y 社:基本料金は  B 円であり、使用料が  C リットルを超えると 1 リットル超えるごとに  D 円かかる

どちらを選ぶかのよって、利用料金の最小値を求めよ。

制約

  •  1 \le A, B, C, D, P \le 10000

考えたこと

まず X 社では料金は  AP (円) となる。

Y 社での料金は

  •  P \le C のとき: B (円)
  •  P \gt C のとき: B + (P - C) \times D (円)

となる。これらのうちの最小値を答えればよい。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int A, B, C, D, P;
    cin >> A >> B >> C >> D >> P;
    int X = A * P;
    int Y = B;
    if (P >= C) Y += (P - C) * D;
    cout << min(X, Y) << endl;
}