Given an integer array usage and an integer k, each operation chooses one element and replaces it with floor(value / 2). Return the minimum possible value of the maximum element after at most k operations.
1 <= usage.length <= 10^50 <= usage[i] <= 10^90 <= k <= 10^9