每次让最高价格的物品除以2就行了
#include<bits/stdc++.h>
using namespace std;
priority_queue<int>q;
int main()
{
long long t,n,m,a,sum = 0;
cin>>n>>m;
for(int i = 0;i < n;i ++)
{
cin >> a;
q.push(a);
}
for(int i = 0;i < m;i ++)
{
t = q.top()/2;
q.pop();
q.push(t);
}
while(!q.empty())
{
sum += q.top();
q.pop();
}
cout<<sum;
return 0;
}