陷阱一、需考虑需求大于库存的情况
陷阱二、需要将库存和售价变为float型,题目只说了种类和需求量是整数,测试点有可能将库存和售价设置为小数
n,d = map(int,input().split())
s = list(float(i) for i in input().split()) # 商品库存列表
r = list(float(i) for i in input().split()) # 商品售价列表
p = []
for i in range(n):
rs = r[i]/s[i]
p.append(rs) # 商品单价列表
rem = d # 剩余需求
r_sum = 0 # 总收入
while 1:
p_index = p.index(max(p)) # 最大单价的索引值
if rem-s[p_index] <= 0: # 剩余需求小于某商品库存,最后一轮
r_sum += p[p_index]*rem
break
else:
rem -= s[p_index] # 剩余需求大于某商品库存,新的剩余需求=剩余需求-某商品库存
r_sum += r[p_index] # 新的总收入= 总收入+商品售价
s.remove(s[p_index]) # 移除该轮最大单价的索引值对应的商品库存
r.remove(r[p_index]) # 移除该轮最大单价的索引值对应的商品售价
p.remove(p[p_index]) # 移除该轮最大单价的索引值对应的商品单价