Problem p02912 (python)

Fixed submission:
from heapq import heappush, heappop, heapify
import math

n, m = map(int, input().split())
item_price_list = list(map(int, input().split()))

item_price_list = list(map(lambda x: x*(-1), item_price_list))
heapify(item_price_list)
for i in range(m):
    a = heappop(item_price_list)
    heappush(item_price_list, math.ceil(a/2))
    
print((-1)*sum(item_price_list))

Buggy submission (verdict: Runtime Error):
import math

n, m = map(int, input().split())
item_price = list(map(int, input().split()))
# n, m = (3, 7)
# item_price = [1, 1, 1]
item_price.sort(reverse=True)
devided_two_price = [math.ceil(math.log2(i)) for i in item_price]
use_ticket_list = [0] * n
sum = 0

x = 0
a = 2
for i in range(m):
    if devided_two_price[x] == a:
        x += 1
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1
    elif devided_two_price[x] >= devided_two_price[x+1]:
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1
    else:
        x += 1
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1
    if x == n-1:
        x = 0
        a -= 1

for i in range(n):
    sum += item_price[i] // (2**use_ticket_list[i])

print(sum)

Buggy submission (verdict: Runtime Error):
import math

n, m = map(int, input().split())
item_price = list(map(int, input().split()))
# n, m = (4, 4)
# item_price = [1, 9, 3, 5]
item_price.sort(reverse=True)
devided_two_price = [math.ceil(math.log2(i)) for i in item_price]
use_ticket_list = [0] * n
sum = 0

x = 0
a = 2
for i in range(m):
    if devided_two_price[x] == a:
        x += 1
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1
    elif devided_two_price[x] >= devided_two_price[x+1]:
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1
    else:
        x += 1
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1
    if x == n:
        x = 0
        a -= 1

for i in range(n):
    sum += item_price[i] // (2**use_ticket_list[i])

print(sum)

Buggy submission (verdict: Runtime Error):
import math

n, m = map(int, input().split())
item_price = list(map(int, input().split()))
# n, m = (4, 4)
# item_price = [1, 9, 3, 5]
item_price.sort(reverse=True)
devided_two_price = [math.ceil(math.log2(i)) for i in item_price]
use_ticket_list = [0] * n
sum = 0

x = 0
for i in range(m):
    if devided_two_price[x] == 2:
        x += 1
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1
    elif devided_two_price[x] >= devided_two_price[x+1]:
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1
    else:
        x += 1
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1

for i in range(n):
    sum += item_price[i] // (2**use_ticket_list[i])

print(sum)

Buggy submission (verdict: Runtime Error):
import math

n, m = map(int, input().split())
item_price = list(map(int, input().split()))
# n, m = (4, 4)
# item_price = [1, 9, 3, 5]
item_price.sort(reverse=True)
devided_two_price = [math.ceil(math.log2(i)) for i in item_price]
use_ticket_list = [0] * n
print(devided_two_price)
sum = 0

x = 0
for i in range(m):
    if devided_two_price[x] == 2:
        x += 1
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1
    elif devided_two_price[x] >= devided_two_price[x+1]:
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1
    else:
        x += 1
        use_ticket_list[x] += 1
        devided_two_price[x] -= 1

print(devided_two_price)
print(use_ticket_list)

for i in range(n):
    sum += item_price[i] // (2**use_ticket_list[i])

print(sum)