春招模拟赛第九场|华为od|2023.4.13.上机编程
- Status
- Done
- Rule
- IOI
- Problem
- 3
- Start at
- 2023-4-21 19:00
- End at
- 2023-4-21 21:00
- Duration
- 2 hour(s)
- Host
- Partic.
- 49
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
塔子哥的网上商城举办优惠活动,发布了满减、打折、无门槛三种优惠券,分别为:
每次最多使用 2 种优惠券, 2 种优惠可以叠加 (优惠叠加时以优惠后的价格计算),以购物 200 元为例,可以先用 92 折券优惠到 184 元,再用 1 张满减券优惠 10 元,最终价格是 174 元,也可以用满减券 2 张优惠 20 元为 180 元,再使用 92 折券优惠到 165 ( 165.6 向下取整)元,不同使用顺序的优惠价格不同,以最优惠价格为准。在一次购物中,同一类型优惠券使用多张时必须一次性使用,不能分多次拆开穿插使用 (不允许先使用 1 张满减券,再用打折券,再使用一张满减券) 。
塔子哥想请你设计实现一种解决方法,帮助购物者以最少的优惠券获得最优的优惠价格。优惠后价格越低越好,同等优惠价格,使用的优惠券越少越好,可以允许某次购物不使用优惠券。
优惠活动每人只能参加一次,每个人的优惠券种类和数量是一样的。
第一行:三个整数 num1,num2,num3 ,表示每个人拥有的每种优惠券的数量,按满减、打折、无门槛的顺序输入。( 1≤num1,num2,num3≤10 )
第二行:一个整数 n ,表示购物的人数。( 1≤n≤10000 )
最后 n 行:每一行一个整数 price ,表示某个人优惠前的购物总价格。( 1≤price≤1000 )
输入都是符合题目设定的要求的。
每行输出每个人每次购物优惠后的最低价格以及使用的优惠券总教量,每行的输出顺序和输入的顺序保持一致。
输入
3 2 5
3
100
200
400
输出
65 6
155 7
338 4
样例解释
输入 3 个人,输出 3 行结果,同输入的顺序,对应每个人的优惠结果,如下:
第一行,先使用 1张满减券优惠到 90 元,再使用 5 张无门槛券优惠 25 元,最终价格是 65 元,总共使用 6 张优惠券;
第二行,先使用 2 张满减券优惠到 180 元,再使用 5 张无门槛券优惠 25 元,最终价格是 155 元,总共使用 7 张优惠券;
第三行,先使用 1 张 92 折券优惠到 368 元,再使用 3 张满减券优惠 30 元,最终价格是 338 元,总共使用 4 张优惠券。
曾经有一位叫做塔子哥的年轻人,他经营着一家网上商城。为了吸引更多的消费者,他决定举办一次优惠活动。他发布了三种优惠券:满减、打折和无门槛,让消费者可以根据自己的需要选择优惠方式。
满减券是针对购物金额的,每满 100 元可以优惠 10 元,没有使用次数限制,打折券可以享受 92 折的优惠,但是每人只能使用 1 张(使用打折券以后的价格向下取整),无门槛优惠券可以直接减 5 元,没有使用次数限制。
为了让消费者能够享受到最优惠的价格,塔子哥想请你设计一种方案,使得消费者在使用最少的优惠券的情况下,可以获得最优惠的价格。如果有多种使用方案可以获得相同的价格,那么使用优惠券的数量越少越好。需要注意的是,在一次购物中,同一类型的优惠券必须一次性使用,不能分多次使用,也不能与其他类型的优惠券混用。
每个人只能参加一次活动,每个人获得的优惠券种类和数量是一样的。
第一行:三个整数 num1,num2,num3 ,表示每个人拥有的每种优惠券的数量,按满减、打折、无门槛的顺序输入。( 1≤num1,num2,num3≤10 )
第二行:一个整数 n ,表示购物的人数。( 1≤n≤10000 )
最后 n 行:每一行一个整数 price ,表示某个人优惠前的购物总价格。( 1≤price≤1000 )
输入都是符合题目设定的要求的。
每行输出每个人每次购物优惠后的最低价格以及使用的优惠券总教量,每行的输出顺序和输入的顺序保持一致。
输入
3 2 5
3
100
200
400
输出
65 6
155 7
338 4
样例解释
输入 3 个人,输出 3 行结果,同输入的顺序,对应每个人的优惠结果,如下:
第一行,先使用 1张满减券优惠到 90 元,再使用 5 张无门槛券优惠 25 元,最终价格是 65 元,总共使用 6 张优惠券;
第二行,先使用 2 张满减券优惠到 180 元,再使用 5 张无门槛券优惠 25 元,最终价格是 155 元,总共使用 7 张优惠券;
第三行,先使用 1 张 92 折券优惠到 368 元,再使用 3 张满减券优惠 30 元,最终价格是 338 元,总共使用 4 张优惠券。
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.