题目描述
小M要制作一种黑暗饮料,这种饮料的原料有n种,编号为1-n,已知小M的容器最多容纳V升材料,黑暗料理的各种原料配比为 a1 : a2 : a3 : ... : an, 每种原料分别有b1,b2,... bn升。 问小M最多可以制作多少升这种饮料。小M使用的各种原料体积和不能超过V。
输入描述:
输入第一行,两个正整数n和V,表示原料种类数和容器容积。(1<=n<=1000,1<=V<=1000000) 输入第二行包含n个数a1,a2,a3,...an,表示n种原料的配比。 输入第三行包含n个数b1,b2,b3...bn,表示小M拥有的各种原料数。 (数字间以空格隔开)
输出描述:
输出包含一个非负数,表示小M最多可以制作多少饮料,结果保留4位小数。
1 line0 = list(map(float,input().split())) 2 n = int(line0[0]) 3 V = line0[1] 4 line1 = list(map(int,input().split())) 5 line2 = list(map(int,input().split())) 6 7 array = [] 8 for i in range(n): 9 array.append((i,line1[i],line2[i],line2[i]/line1[i])) 10 array = sorted(array,key=lambda x:(x[3])) 11 #print(array) 12 13 sums = 0 14 for i in range(len(array)): 15 part = array[i][1] / array[0][1] * array[0][2] 16 sums += part 17 if sums < V: 18 print('%.4f' % sums) 19 else: 20 print('%.4f' % V)
数据结构:数组
算法思路:贪心