- 测试结果有一个非0返回
N,D = map(int,input().split())
lst_save = [float(x) for x in input().split()]
lst_price = [float(x) for x in input().split()]
lst_price_single = [lst_price[i]/lst_save[i] for i in range(len(lst_save))]
lst_index = []
for i in range(N):
lst_index.append(i)
dic = dict(zip(lst_price_single,lst_index))
lst_price_single.sort(reverse=True)
lst_save_sorted = []
for i in lst_price_single:
lst_save_sorted.append(lst_save[dic.get(i)])
sum = 0
for i in range(len(lst_save_sorted)):
if D != 0:
if D > lst_save_sorted[i]:
sum += lst_save_sorted[i]*lst_price_single[i]
D -= lst_save_sorted[i]
else:
sum += D * lst_price_single[i]
D = 0
print("{:.2f}".format(sum))
注意审题,月饼的总库存和总售价均是正数(而非正整数),一开始出现非0返回的结果是我在上述代码的第一第二行那里想当然地以为这两个量是int类型的。只需改为float即可解决。