上海计算机学会2024年6月月赛C++丙组T1布置会场(二)
发布时间
阅读量:
阅读量
布置会场(二)
内存限制: 256 Mb时间限制: 1000 ms
题目描述
激动人心的YACS颁奖大会就要举办了!为了欢迎各位获奖OI选手,主办方决定用花来布置场地。
负责活动组织的小爱老师了解到,花店的销售方式如下:
- 一支花的价格为a元
- 一束花的价格为b元,一束花由c支花组合而成。
小爱老师可以购买一束花后,将他重新组合成c支花来使用。已知布置会场需要用到n支花,请问小爱老师购买花朵最少花费需多少元?
输入格式
输入共 3 行,
第一行:一个正整数 n
第二行:一个正整数 a
第三行:两个正整数 b,c
输出格式
输出一个正整数,表示小爱老师购买花朵的最少花费。
数据范围
- 对于50%的数据:1≤n≤100,1≤a,b,c≤100
- 对于100%的数据:1≤n≤104,1≤a,b,c≤104
样例数据
输入:
3
3
7 3
输出:
7
说明:
直接买一束花,7块钱就能满足3支花的数量
输入:
6
1
5 4
输出:
6
说明:
不买任何一束,全买单支即可。
解析:三种情况取最小值:
1.全买单支
2.全买整束
3.尽量买整束,零头用单支补
详见代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, a, b, c;
cin >> n >> a >> b >> c;
//全买单支n*a
//尽量买整束,零头买单支n / c * b + n % c * a
//全部买整束 (n + c - 1) / c * b
int ans = min(n * a, n / c * b + n % c * a);
ans = min(ans, (n + c - 1) / c * b);
cout << ans;
return 0;
}
AI写代码cpp

全部评论 (0)
还没有任何评论哟~
