http://acm.hdu.edu.cn/showproblem.php?pid=5310
题意:今天是BestCoder一周年纪念日. 比赛管理员Soda想要给每个参赛者准备一个纪念品. 商店里纪念品的单价是p 元, 同时也可以花q 元购买纪念品套装, 一个套装里有m 个纪念品.
今天总共有n 个参赛者, Soda想要知道最少需要花多少钱才可以给每个人都准备一个纪念品.
输入描述
输入有多组数据. 第一行有一个整数T (1≤T≤10 5 ) , 表示测试数据组数. 然后对于每组数据:
一行包含4个整数 n,m,p,q (1≤n,m,p,q≤10 4 ) .
输出描述
对于每组数据输出最小花费.
提示:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
int m,n,q,t,p;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d%d",&n,&m ,&p,&q);
int sum=0;
double op=q/m;
if(op<p)
{
sum+=(n/m)*q;
int pl=n%m;
sum+=min(p*pl,q);
cout<<sum<<endl;
}
else
cout<<p*n<<endl;
}
return 0;
}