【网上商城优惠活动】
创始人
2025-05-29 13:04:02
0

【背景】
某网上商城举办优惠活动,发布了满减、打折、无门槛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],都为整数)。
约定:输入都是符合题目设定的要求的。
输出描述
每行输出每个人每次购物优惠后的最低价格以及使用的优惠券总数量,每行的输出顺序和
输入的顺序保持一致。

 

import math
m,d,w = map(int,input().split())
n = int(input())
prices = [int(input()) for i in range(n)]#定义满减
def manJian(price,m):'需要判断是否执行满减'maxCount = price//100#理论上最多满减券,实际数量可能小于这个count = min(m,maxCount)#实际能用的满减券price -= count * 10m -= countreturn price,mdef daZhe(price,d):if d >= 1:price = math.floor(price*0.92)return price,d-1def wuMenKan(price,w):while  price > 0 and w > 0:price -= 5price = max(0,price)#价格最少为0,不能为负数w -= 1return price,wfor price in prices:ret = []resM = manJian(price, m)  # 先满减resMN_N = daZhe(resM[0], d)  # 满减后打折ret.append((resMN_N[0], m + d - (resM[1] + resMN_N[1])))  # m + n 是满减后打折方式的总券数量, resM[1] + resMN_N[1] 是满减券剩余数+打折券剩余数resMK_K = wuMenKan(resM[0], w)  # 满减后无门槛ret.append((resMK_K[0], m + w - (resM[1] + resMK_K[1])))resN = daZhe(price, d)  # 先打折resNM_M = manJian(resN[0], m)  # 打折后满减ret.append((resNM_M[0], d + m - (resN[1] + resNM_M[1])))resNK_K = wuMenKan(resN[0], w)  # 打折后无门槛ret.append((resNK_K[0], d + w - (resN[1] + resNK_K[1])))'''先用无门槛后打折(x-5y)*0.92 = x*0.92 - 5*0.92*y先打折后用无门槛 x*0.92 - 5y对比可以看出,先92折,再无门槛最优惠,因此可以直接排除即先无门槛的情况。'''# 对ans进行排序,排序规则是:优先按剩余总价升序,如果剩余总价相同,则再按“使用掉的券数量”升序ret.sort(key=lambda x: (x[0], x[1]))#print(ret)print(" ".join(map(str, ret[0])))

相关内容

热门资讯

政策东风激活高原发展“生力军” 前不久,《中华人民共和国民营经济促进法》的颁布,犹如春日暖阳,为民营经济的发展带来蓬勃生机,也向全社...
普陀山树上盘踞长蛇引游客拍照围... 6月6日,浙江舟山,有游客游玩普陀山发现头顶树上盘踞长蛇,引众多游客拍照围观。游客称:“普陀山有各种...
资讯 | 主任大讲堂第三期:律... 在律师的四项基本技能“听说读写”中,写作能力既是律师观点表达的通道,也是律师自我展示的门面。为夯实律...
专业文章丨《刑事诉讼法》第四次... 【珠海律师、珠海法律咨询、珠海律师事务所、京师律所、京师珠海律所】 (本文转载自北京市京师上海律师事...
女子健身房锻炼扭伤腰引发赔偿纠... 近日,朝阳区常营东方华庭社区成功化解一起健身馆锻炼时受伤引发的赔偿纠纷。在社区耐心细致的调解下,消费...
东源县开展《信访工作条例》普法... 近日,东源县信访局联合县委社工部、县委政法委、县司法局、县人社局、仙塘镇人民政府、万达商圈党群服务中...
深圳将调整外地车限行政策 日前,《深圳市提振消费专项行动实施方案》(以下简称《实施方案》)经深圳市委、市政府同意并正式印发,涉...
惠企利民政策|农民进城购房补贴... 策划:金鸿雁;文案:吴利红;AI制作:高翔;记者:吴利红;视频:李巍
诚志股份:子公司诚志永清依照国... 金融界6月9日消息,有投资者在互动平台向诚志股份提问:请问董秘公司因碳五重质烃产品被税务稽查征缴的税...
长亮科技:香港稳定币制度的建立... 每经AI快讯,长亮科技6月9日在互动平台表示,公司拥有稳定币运行、交易、运营的类似场景建设经验与技术...