1
class Solution:
2
def maxProfit(self, inventory: List[int], orders: int) -> int:
3
inventory.sort(reverse=True)
4
inventory += [0]
5
res = 0
6
k = 1
7

8
for i in range(len(inventory) - 1):
9
if inventory[i] > inventory[i + 1]:
10
if k * (inventory[i] - inventory[i + 1]) < orders:
11
diff = inventory[i] - inventory[i + 1]
12
res += k * (inventory[i] + inventory[i + 1] + 1) * (diff) // 2
13
orders -= k * diff
14
else:
15
q, r = divmod(orders, k)
16
res += k * (inventory[i] + (inventory[i] - q + 1)) * q // 2
17
res += r * (inventory[i] - q)
18
return res % (10**9 + 7)
19
k += 1

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0