Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def minimumTotalPower(treasureBoxes, k):
- n = len(treasureBoxes)
- assert(1 <= n and n <= 200000)
- for i in range(n):
- assert(treasureBoxes[i] == 0 or treasureBoxes[i] == 1)
- assert(1 <= k and k <= 100)
- cur = 0
- pos = 0
- v = []
- num = 0
- for i, x in enumerate(treasureBoxes):
- if (x == 0):
- continue
- cur += i - pos
- v.append(i - pos)
- pos += 1
- num += 1
- l = 0
- ans = cur
- v.sort()
- for i in range(1, n - num + 1):
- while (l < len(v) and v[l] < i):
- l += 1
- cur += l
- cur -= len(v) - l
- ans = min(ans, cur)
- return ans * k
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement