mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-07-18 18:14:34 +08:00
psf/black code formatting (#1277)
This commit is contained in:

committed by
Christian Clauss

parent
07f04a2e55
commit
9eac17a408
@ -1,12 +1,20 @@
|
||||
from itertools import accumulate
|
||||
from bisect import bisect
|
||||
|
||||
|
||||
def fracKnapsack(vl, wt, W, n):
|
||||
|
||||
r = list(sorted(zip(vl,wt), key=lambda x:x[0]/x[1],reverse=True))
|
||||
vl , wt = [i[0] for i in r],[i[1] for i in r]
|
||||
acc=list(accumulate(wt))
|
||||
k = bisect(acc,W)
|
||||
return 0 if k == 0 else sum(vl[:k])+(W-acc[k-1])*(vl[k])/(wt[k]) if k!=n else sum(vl[:k])
|
||||
r = list(sorted(zip(vl, wt), key=lambda x: x[0] / x[1], reverse=True))
|
||||
vl, wt = [i[0] for i in r], [i[1] for i in r]
|
||||
acc = list(accumulate(wt))
|
||||
k = bisect(acc, W)
|
||||
return (
|
||||
0
|
||||
if k == 0
|
||||
else sum(vl[:k]) + (W - acc[k - 1]) * (vl[k]) / (wt[k])
|
||||
if k != n
|
||||
else sum(vl[:k])
|
||||
)
|
||||
|
||||
print("%.0f"%fracKnapsack([60, 100, 120],[10, 20, 30],50,3))
|
||||
|
||||
print("%.0f" % fracKnapsack([60, 100, 120], [10, 20, 30], 50, 3))
|
||||
|
Reference in New Issue
Block a user