Advertisement

上海计算机学会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
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-05-31/AFH7l5NOKrkCwP1SYtZ3sU6qQXoj.png)

全部评论 (0)

还没有任何评论哟~