Today is the 1st anniversary of BestCoder. Soda, the contest manager, wants to buy a souvenir for each contestant. You can buy the souvenir one by one or set by set in the shop. The price for a souvenir is pp yuan and the price for a set of souvenirs if qq yuan. There's mm souvenirs in one set.
There's nn contestants in the contest today. Soda wants to know the minimum cost needed to buy a souvenir for each contestant.
There are multiple test cases. The first line of input contains an integer TT (1 \le T \le 10^5)(1≤T≤105), indicating the number of test cases. For each test case:
There's a line containing 4 integers n, m, p, qn,m,p,q (1 \le n, m, p, q \le 10^4)(1≤n,m,p,q≤104).
For each test case, output the minimum cost needed.
2 1 2 2 1 1 2 3 4
1 3HintFor the first case, Soda can use 1 yuan to buy a set of 2 souvenirs.For the second case, Soda can use 3 yuan to buy a souvenir.
简单题
考虑三种情况即可
#include<cstdio> #include<cmath> #include<queue> #include<vector> #include<stack> #include<map> #include<string> #include<cstring> #include<algorithm> #include<iostream> using namespace std; typedef long long ll; const ll maxn = 100005; int T, n, m, p, q, ans; int main() { cin >> T; while (T--) { scanf("%d%d%d%d", &n, &m, &p, &q); ans = n * p; ans = min(ans, n / m * q + n % m * p); ans = min(ans, (n + m - 1) / m * q); printf("%d\n", ans); } return 0; }