HDU 5310 Souvenir
2015-07-26 17:08
309 查看
Problem Description
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.
Input
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).
Output
For each test case, output the minimum cost needed.
Sample Input
Sample Output
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.
Input
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).
Output
For each test case, output the minimum cost needed.
Sample Input
2 1 2 2 1 1 2 3 4
Sample Output
1 3 Hint For 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; }
相关文章推荐
- ZOJ 3436 July Number(DFS)
- 复制单级文件夹及其下面的内容到指定的目录下去
- maven 使用 一
- hdu acm steps Biker's Trip Odometer
- BCB中的TComboBox
- u3d面试题3
- Python实现截屏的函数
- 哈希表查找 — 开放定址法
- 9.2 libvirt中对Qemu的控制
- 【POI2000】【BZOJ2946】公共串
- Python 异常处理
- 【剑指Offer面试题】 九度OJ1385:重建二叉树
- 关于AS的简单记录
- Hdu 2289
- Tair-淘宝自主开发的一个分布式key/value存储系统
- 9.1 libvirt与openstack
- *Lowest Common Ancestor of a Binary Tree解析
- u3d面试题2
- 8.3 Qemu启动参数管理
- [FOJ 2123] 数字的孔数