C# 代码
public class Solution {
public long PickGifts(int[] gifts, int k) {
PriorityQueue<int, int> q = new PriorityQueue<int, int>();
long sum = 0;
int n = gifts.Length;
for (int i = 0; i < n; i++){
sum += gifts[i];
q.Enqueue(gifts[i], -gifts[i]);
}
while (k-- > 0){
int t = q.Dequeue();
int x = (int)Math.Sqrt(t);
sum -= (t - x);
q.Enqueue(x, -x);
}
return sum;
}
}