본문 바로가기

Algorithm/Python

[Algorithm|Python] 백준 147503번 / 99클럽 18일차

from heapq import heappop, heappush
import sys

input = sys.stdin.readline
 
N, M, K = map(int, input().split())
beers = []

for _ in range(K):
    v, c = map(int, input().split())
    beers.append([v, c])
 
beers.sort(key=lambda x: x[1])
 
def solution():
    picked = []
    preference = 0
 
    for b in beers:
        heappush(picked, b)
        preference += b[0]
        if len(picked) >= N:
            if preference >= M:
                return b[1]
            else:
                preference -= heappop(picked)[0]
 
    return -1
 
print(solution())