题解
2023-10-05 14:05:21
发布于:浙江
11阅读
0回复
0点赞
#include <iostream>
using namespace std;
int main(){
long long t,n,a,b;
cin >> t;
for (int i = 0;i<t;i++) // 总计t组数据,使用for循环输入
{
cin >> n >> a >> b; // 输入单组数据
/*
先计算:当需要2的倍数升水时,购买两桶一升水和购买一桶两升水哪个更划算
若 a2<=b 成立,则说明购买两桶一升水比购买一桶两升水更加便宜或相同
这种情况下只需要全部都购买一升水即可
则总价格为 na
若 a*2<=b 不成立,则说明购买两桶一升水比购买一桶两升水更贵
这种情况下需要尽可能多的购买两升水
可以购买的两升水的数量为 n/2,价格为n/2*b
由于不确定n是奇数还是偶数,需要在总价基础上再加上(n%2)*a
当n是偶数时,n%2为0,总价为 n/2*b + 0*a
当n是奇数是,n%2为1,总价为 n/2*b + 1*a
*/
if (a*2<=b){
cout << n*a << endl;
}else{
cout << n/2*b + (n%2)*a << endl;
}
}
return 0;
}
这里空空如也
有帮助,赞一个