链接:
https://codeforces.com/problemset/problem/466/A
题意
买地铁票,单程票a元,多程票m次b元,一共做n次地铁,问最少买票需要多少钱?
1 <= n, a, b, m <= 1000
依次输入n, m, a, b。
Example
input
6 2 1 2
output
6
input
5 2 2 3
output
8
解析
直接比较单程总价和多程或者多程加单程的总价谁低就行了。单程n * a元,多程就是n / m * b元再加上b和余下买单程票的最小值,即min(b, n % m * a)元。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n, m, a, b;
cin >> n >> m >> a >> b;
int price1 = n * a;
int price2 = n / m * b;
int extra = min(n % m * a, b);
price2 += extra;
if (m * a <= b) cout << n * a; //这个if判断可有可无,直接输出min(price1, price2)也正确
else cout << min(price1, price2);
return 0;
}