- 注意考虑需求量大于所有月饼供应量之和的情况。
代码如下
测试结果是有一个非零返回,说明有一种情况没有考虑到。
def mooncake():
input = map(int, raw_input().split(' '))
if input[0] == 0:
print '0.00'
return
stock = map(int, raw_input().split(' '))
tprice = map(float, raw_input().split(' '))
price = []
for i in range(input[0]):
price.append([i, (tprice[i]/stock[i])])
price = sorted(price, key = lambda x: x[1], reverse = True)
needs = input[1]
income = 0
i = 0
while needs > stock[price[i][0]] and i < (input[0] - 1):
income = income + tprice[price[i][0]]
needs = needs - stock[price[i][0]]
i += 1
income = income + (price[i][1])*min(needs, stock[price[i][0]])
print "%.2f"% income
if __name__ == '__main__':
mooncake()