【华为OD机试真题】网上商城优惠活动(java&python)
网上商城优惠活动
时间限制:1s 空间限制:50MB 限定语言:不限
题目描述:
【背景】
某网上商城举办优惠活动,发布了满减、打折、无门槛3种优惠券》,分别为: 1.每满100元优惠10元,无使用数限制,如100~199元可以使用1张减10元, 200 ~299可使用2张减20元,以此类推; 2.92折券,1次限使用1张,如100元,则优惠后为92元; 3.无门槛5元优惠券,无使用数限制,直接减5元。
【优惠券使用限制】
每次最多使用2种优惠券,2种优惠可以叠加(优惠叠加时以优惠后的价格计算),以 购物200元为例,可以先用92折券优惠到184元,再用1张满减券优惠10元,最终价 格是174元,也可以用满减券2张优惠20元为180元,再使用92折券优惠到165 (165.6向下取整 )元,不同使用顺序的优惠价格不同,以最优惠价格为准。在一 次购物中,同一类型优惠券使用多张时必须一次性使用,不能分多次拆开穿插使用 (不允许先使用1张满减券,再用打折券,再使用一张满减券)
【问题】
请设计实现一种解决方法,考 帮助购物者以最少的优惠券获得最优的优惠价格。优惠后 价格越低越好,同等优惠价格,使用的优惠券越少越好,可以允许某次购物不使用优 惠券。
【约定】
优惠活动每人只能参加一次,每个人的优惠券种类和数量是一样的。
输入描述:
第一行:每个人拥有的优惠券数量(数量取值范围为[0,10]),按满减、打折、无门槛的顺序输 入。
第二行:表示购物的人数n(1<=n<= 10000)
最后n行:每一行表示某个人优惠前的购物总价格(价格取值范围(0,1000],都为整数)
约定:输入都是符合题目设定的要求的。
输出描述:
每行输出每个人每次购物优惠后的最低价格以及使用的优惠券总数量,每行的输出顺序和输入的 顺序保持一致。
补充说明:
1.优惠券数量都为
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】