1 / 4
CSP-X2024 山东小学组二轮试题(上半场)
考试时间: 2024 年 10 月 27 日上午 8:30--10:00
题目名称 购物 消灭怪兽
题目类型 传统型 传统型
目录 buy monster
程序名称 buy.cpp monster.cpp
输入文件名 buy.in monster.in
输出文件名 buy.out monster.out
测试点数量 20 20
每测试点时限 1秒 1秒
测试点是否等分 是 是
内存限制 512M 512M
注意事项
1、 代码必须放在子文件夹内, 子文件夹名与题目英文名一致。 文件名(包括程序名和输
入输出文件名) 必须使用英文小写。
2、 C++编译选项: -O2 -std=c++14。 C++ 中函数 main() 的返回值类型必须是 int, 程
序正常结束时的返回值必须是 0。
3、 若无特殊说明, 输入文件中同一行内的多个整数、 浮点数、 字符串等均使用一个空
格分隔。 若无特殊说明, 结果比较方式为忽略行末空格、 文末回车后的全文比较。
4、选手提交的程序源文件不能大于 100KB。
5、程序使用的栈空间内存限制与题目的内存限制要求一致。
2 / 4
购物(buy)
【题目描述】
双十一,很多人在疯狂地购物。
商家推出了各种各样的优惠活动,吸引顾客购买更多的商品。
某商家推出如下的优惠活动:
该商家共有 n 件商品,单独购买第 i 件商品的费用为 a
i 。顾客也可以花费 w 购买 一
张优惠券,一张优惠卷最多可兑换 m 件商品(无需额外付费)。顾客可以购买任意张优惠卷;
如果最后商品不足 m 件,优惠卷也可以使用。
求顾客购买完所有 n 件商品的最小费用。
【输入格式】
输入文件为 buy.in
第一行有 3 个整数 n,m,w。
第二行有 n 个整数,第 i 个为 a
i ,表示第 i件商品的费用。
【输出格式】
输出文件为 buy.out
购买所有商品的最小费用。
【样例1输入】
5 2 8
2 7 1 8 4
【样例1输出】
15
样例1说明
花费 8 买一张优惠卷,兑换第 2、第 4 件商品;第 1、第 3、第 5 件商品直接购买。
共花费 8+2+1+4=15。
【样例2输入】
5 3 8
6 7 4 8 9
3 / 4
【样例2输出】
16
样例2说明
花费 16 购买两张优惠卷,能 兑换所有商品。
【数据范围】
30% 的数据: 1≤n≤10
3
,1≤m≤10
3
,1≤w≤10
9
,1≤a
i≤10
9
;
100% 的数据: 1≤n≤2×10
5
,1≤m≤2×10
5
,1≤w≤10
9
,1≤a
i≤10
9
。
消灭怪兽 (monster)
【题目描述 】
怪兽入侵了地球!
为了抵抗入侵,人类设计出了按顺序排列好的 n 件武器,其中第 i 件武器的攻击力为
a
i,可以造成 a
i 的伤害。
CSP-X 2024山东小学组(上半场)