#include <stdio.h>
#include <stdlib.h>
static int *heap;
static int hn;
static void push(int x)
{
int i = hn++;
heap[i] = x;
while(i > 0)
{
int p = (i-1)/2;
if(heap[p] >= heap[i]) break;
int t = heap[p]; heap[p] = heap[i]; heap[i] = t;
i = p;
}
}
static int pop(void)
{
int ret = heap[0];
int i = 0;
heap[0] = heap[--hn];
while(1)
{
int l = 2*i+1, r = 2*i+2, m = i;
if(l < hn && heap[l] > heap[m]) m = l;
if(r < hn && heap[r] > heap[m]) m = r;
if(m == i) break;
int t = heap[m]; heap[m] = heap[i]; heap[i] = t;
i = m;
}
return ret;
}
int solve()
{
int ret;
int n, q, i, x;
heap
= (int *)malloc(sizeof(int) * n
); hn = 0;
for(i = 0; i < n; i++)
{
push(x);
}
for(i = 0; i < q; i++)
{
if(heap[0] == 0) break;
x = pop();
push(x/2);
}
ret = 0;
for(i = 0; i < hn; i++) ret += heap[i];
return ret;
}
int main(void)
{
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnN0YXRpYyBpbnQgKmhlYXA7CnN0YXRpYyBpbnQgaG47CgpzdGF0aWMgdm9pZCBwdXNoKGludCB4KQp7CiAgICBpbnQgaSA9IGhuKys7CiAgICBoZWFwW2ldID0geDsKICAgIHdoaWxlKGkgPiAwKQoJewogICAgICAgIGludCBwID0gKGktMSkvMjsKICAgICAgICBpZihoZWFwW3BdID49IGhlYXBbaV0pIGJyZWFrOwogICAgICAgIGludCB0ID0gaGVhcFtwXTsgaGVhcFtwXSA9IGhlYXBbaV07IGhlYXBbaV0gPSB0OwogICAgICAgIGkgPSBwOwogICAgfQp9CgpzdGF0aWMgaW50IHBvcCh2b2lkKQp7CiAgICBpbnQgcmV0ID0gaGVhcFswXTsKICAgIGludCBpID0gMDsKICAgIGhlYXBbMF0gPSBoZWFwWy0taG5dOwogICAgd2hpbGUoMSkKCXsKICAgICAgICBpbnQgbCA9IDIqaSsxLCByID0gMippKzIsIG0gPSBpOwogICAgICAgIGlmKGwgPCBobiAmJiBoZWFwW2xdID4gaGVhcFttXSkgbSA9IGw7CiAgICAgICAgaWYociA8IGhuICYmIGhlYXBbcl0gPiBoZWFwW21dKSBtID0gcjsKICAgICAgICBpZihtID09IGkpIGJyZWFrOwogICAgICAgIGludCB0ID0gaGVhcFttXTsgaGVhcFttXSA9IGhlYXBbaV07IGhlYXBbaV0gPSB0OwogICAgICAgIGkgPSBtOwogICAgfQogICAgcmV0dXJuIHJldDsKfQoKaW50IHNvbHZlKCkKewogICAgaW50IHJldDsKICAgIGludCBuLCBxLCBpLCB4OwogICAgc2NhbmYoIiVkICVkIiwgJm4sICZxKTsKICAgIGhlYXAgPSAoaW50ICopbWFsbG9jKHNpemVvZihpbnQpICogbik7CiAgICBobiA9IDA7CiAgICBmb3IoaSA9IDA7IGkgPCBuOyBpKyspCgl7CiAgICAgICAgc2NhbmYoIiVkIiwgJngpOwogICAgICAgIHB1c2goeCk7CiAgICB9CiAgICBmb3IoaSA9IDA7IGkgPCBxOyBpKyspCgl7CiAgICAgICAgaWYoaGVhcFswXSA9PSAwKSBicmVhazsKICAgICAgICB4ID0gcG9wKCk7CiAgICAgICAgcHVzaCh4LzIpOwogICAgfQogICAgcmV0ID0gMDsKICAgIGZvcihpID0gMDsgaSA8IGhuOyBpKyspIHJldCArPSBoZWFwW2ldOwogICAgZnJlZShoZWFwKTsKICAgIHJldHVybiByZXQ7Cn0KCgppbnQgbWFpbih2b2lkKQp7CiAgICBwcmludGYoIiVkXG4iLHNvbHZlKCkpOwogICAgcmV0dXJuIDA7Cn0=