问题 E: 便利店 (python)
发布时间
阅读量:
阅读量
题目描述
天宝来到便利店想买些饮料。便利店有各种型号的瓶装饮料售卖,不同型号的饮料卖不同的价格。1瓶0.25升的卖A元,1瓶0.5升的饮料卖B元,1瓶1升的卖C元,1瓶2升的卖D元。便利店里每种饮料都是无限供应。
天宝要买N升的饮料,最少需要花多少钱呢?聪明的你写个程序帮她算算吧。
已知
1) 1≤A,B,C,D≤108 ,1≤N≤109
2) 输入的数据都是整数
输入
输入数据按照下面格式
A B C D
N
输出
输出天宝要买N升的饮料所需要花的钱最小值。
样例输入 Copy
20 30 70 90
3
样例输出 Copy
150
提示
买1瓶2升的饮料和2瓶0.5升的饮料。 这样正好可以买到3升饮料,花费是 90+30+30=150 元。
#贪心策略:每升单价的高低来买
a,b,c,d = map(int,input().split())
n = int(input())
#将饮料,每升单价,升数 合成一个列表
ls = [(a,4*a,0.25),(b,2*b,0.5),(c,c,1),(d,d/2,2)]
#将列表根据每升的价格排序
ls.sort(key= lambda x:x[1] ,reverse=False)
s=0
#根据每升的单价升序来买
for i in ls:
s+=(n//i[2])*i[0]
n=n%i[2]
print(int(s))
AI写代码python
运行

全部评论 (0)
还没有任何评论哟~
