1class Solution:2def maxProfit(self, inventory: List[int], orders: int) -> int:3inventory.sort(reverse=True)4inventory += [0]5res = 06k = 178for i in range(len(inventory) - 1):9if inventory[i] > inventory[i + 1]:10if k * (inventory[i] - inventory[i + 1]) < orders:11diff = inventory[i] - inventory[i + 1]12res += k * (inventory[i] + inventory[i + 1] + 1) * (diff) // 213orders -= k * diff14else:15q, r = divmod(orders, k)16res += k * (inventory[i] + (inventory[i] - q + 1)) * q // 217res += r * (inventory[i] - q)18return res % (10**9 + 7)19k += 1