Problem p03038 (python)

Fixed submission:
N, M = map(int, input().split())

A = sorted(list(map(int, input().split())), reverse=True)

B = []
for i in range(M):
    b, c = map(int, input().split())
    B.append([b, c])

B.sort(key=lambda x:(-x[1]))

cnt = 0
ans = 0
a = 0
b = 0
while True:
    if b <= M-1 and A[a] <= B[b][1]:
        n = min(B[b][0], N-cnt)
        ans += B[b][1]*n
        cnt += n
        if cnt == N:
            print(ans)
            break
        b += 1
    elif a <= N-1:
        cnt += 1
        ans += A[a]
        if cnt == N:
            print(ans)
            break
        a += 1

Buggy submission (verdict: Runtime Error):
N, M = map(int, input().split())

A = sorted(list(map(int, input().split())), reverse=True)

B = []
for i in range(M):
    b, c = map(int, input().split())
    B.append([b, c])

B.sort(key=lambda x:(-x[1]))

cnt = 0
ans = 0
a = 0
b = 0
while True:
    if b <= M-1 and A[a] <= B[b][1]:
        for k in range(B[b][0]):
            ans += B[b][1]
            cnt += 1
            if cnt == N:
                print(ans)
                break
        b += 1
    else a <= N-1:
        cnt += 1
        ans += A[a]
        if cnt == N:
            print(ans)
            break
        a += 1

Buggy submission (verdict: Runtime Error):
N, M = map(int, input().split())

A = sorted(list(map(int, input().split())), reverse=True)

B = []
for i in range(M):
    b, c = map(int, input().split())
    B.append([b, c])

B.sort(key=lambda x:(-x[1]))

cnt = 0
ans = 0
a = 0
b = 0
while True:
    if b <= M-1 and A[a] <= B[b][1]:
        for k in range(B[b][0]):
            ans += B[b][1]
            cnt += 1
            if cnt == N:
                print(ans)
                break
        b += 1
    else:
        cnt += 1
        ans += A[a]
        if cnt == N:
            print(ans)
            break
        a += 1

Buggy submission (verdict: Runtime Error):
N, M = map(int, input().split())

A = sorted(list(map(int, input().split())), reverse=True)

B = []
for i in range(M):
    b, c = map(int, input().split())
    B.append([b, c])

B.sort(key=lambda x:(-x[1]))

cnt = 0
ans = 0
a = 0
b = 0
while True:
    if A[a] <= B[b][1]:
        for k in range(B[b][0]):
            ans += B[b][1]
            cnt += 1
            if cnt == N:
                print(ans)
                break
        b += 1
    else:
        cnt += 1
        ans += A[a]
        if cnt == N:
            print(ans)
            break
        a += 1

Buggy submission (verdict: Runtime Error):
N, M = map(int, input().split())

A = sorted(list(map(int, input().split())), reverse=True)

B = []
for i in range(M):
    b, c = map(int, input().split())
    B.append([b, c])

B.sort(key=lambda x:(-x[1]))
cnt = 0
ans = []
a = 0
b = 0
while cnt <=  N:
    if A[a] <= B[b][1]:
        for k in range(B[b][0]):
            ans.append(B[b][1])
            cnt += 1
        b += 1
    else:
        ans.append(A[a])
        cnt += 1
        a += 1
print(sum(ans[:N]))

Buggy submission (verdict: Runtime Error):
N, M = map(int, input().split())

A = list(map(int, input().split()))

D=[]
for i in range(M):
    B, C = map(int, input().split())
    D += [C]*B

D.sort(reverse = True)
A += D[:N]
A.sort(reverse = True)

print(sum(E[:N]))

Buggy submission (verdict: Runtime Error):
from collections import deque
N, M = map(int, input().split())

A = list(map(int, input().split()))

D=[]
for i in range(M):
    B, C = map(int, input().split())
    D += [C]*B

D.sort(reverse = True)
A += D[:N]
A.sort(reverse = True)

print(sum(E[:N]))