您的位置:首页 > 其它

HDU5310(bestcoder一周年1001)

2015-07-27 14:35 267 查看

Souvenir

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)

Total Submission(s): 704 Accepted Submission(s): 430


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 isp
yuan and the price for a set of souvenirs if q
yuan. There's m
souvenirs in one set.

There's n
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 integerT(1≤T≤105),
indicating the number of test cases. For each test case:

There's a line containing 4 integers n,m,p,q(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.




Source
BestCoder 1st Anniversary ($)

注意边界情况

#include<stdio.h>
#include<math.h>
int main()
{
    int t,n,m,p,q,yu,sum;
    while(scanf("%d",&t)!=EOF)
    {
        while(t--)
        {
            sum=0;
            scanf("%d%d%d%d",&n,&m,&p,&q);
            if(p*m<=q)
            {
                sum=p*n;
            }
            else
            {
                yu=n%m;
                if(yu*p<=q)
                {
                    sum=n/m*q+yu*p;
                }
                else
                    sum=(n/m+1)*q;
            }
            printf("%d\n",sum);
                
        }
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: