官方题解:本题是一个简单的数学题. 如果套装优惠的话就尽量买套装, 否则单件买. 注意一下如果一直用套装的话可能在最后的零头不如单买好, 即本题是一个简单的数学题. 如果套装优惠的话就尽量买套装, 否则单件买. 注意一下如果一直用套装的话可能在最后的零头不如单买好, 即(n mod m)⋅p<q.
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
int T;
scanf("%d",&T);
while(T--){
int n,m,p,q;
scanf("%d%d%d%d",&n,&m,&p,&q);
if(p*m >= q){
int x = n / m;
int y = n % m;
if(p*y >= q)
printf("%d\n",x*q+q);
else
printf("%d\n",x*q + p* y);
}
else
printf("%d\n",p*n);
}
return 0;
}