Remove Stones to Minimize the Total

You are given a 0-indexed integer array piles, where piles[i] represents the number of stones in the i^th pile, and an integer k. You should apply the following operation exactly k times:

  • Choose any piles[i] and remove floor(piles[i] / 2) stones from it.

Notice that you can apply the operation on the same pile more than once.

Return the minimum possible total number of stones remaining after applying the k operations.

floor(x) is the largest integer that is smaller than or equal to x (i.e., rounds x down).

Example 1
Inputpiles = [5,4,9], k = 2
Output12
Applying the operation to pile 2 and then pile 0 can produce [3, 4, 5], whose total number of stones is 12.
Example 2
Inputpiles = [4,3,6,7], k = 3
Output12
Applying the operation to piles 2, 3, and 0 can produce [2, 3, 3, 4], whose total number of stones is 12.

Constraints

  • 1 <= piles.length <= 10^5
  • 1 <= piles[i] <= 10^4
  • 1 <= k <= 10^5

Asked at 4 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate