24 lines
705 B
Python
24 lines
705 B
Python
courses, points = tuple(map(int, input("").split(" ")))
|
|
|
|
numerators = map(int, input("").split(" "))
|
|
denominators = map(int, input("").split(" "))
|
|
|
|
fitness = lambda frac: (frac[0]+1)/(frac[1]+1) - (frac[0]/frac[1])
|
|
|
|
fractions = list(sorted(zip(numerators, denominators), key=fitness, reverse=True))
|
|
|
|
i = 0
|
|
|
|
for point in range(points):
|
|
# print(fractions[0][0], "/", fractions[0][1], "=", fractions[0][0]/fractions[0][1])
|
|
fractions[0] = (fractions[i][0]+1, fractions[i][1]+1)
|
|
|
|
if len(fractions) >= 2 and fitness(fractions[0]) < fitness(fractions[1]):
|
|
fractions.sort(key=fitness, reverse=True)
|
|
|
|
total = 0
|
|
|
|
for (num, denom) in fractions:
|
|
total += num/denom
|
|
|
|
print((total/courses)*100)
|