AtCoder Beginner Contest 121 C. Energy Drink Collector【Python】

https://atcoder.jp/contests/abc121/tasks/abc121_c
AtCoder ProblemsのRecommendationで Difficulty: 360、Solve Probability: 48%でした。

N, M = map(int, input().split())
l = []
for i in range(N):
    l.append(list(map(int, input().split())))
l = sorted(l)
cost = 0
count = 0
for i in l:
    a, b = i
    left = M-count
    #残りの必要個数がb以上の場合
    if left >= b:
        cost += a * b
        count += b
    #残りの必要個数がb未満の場合
    else:
        cost += a * left
        count += left
    if count == 0:
        break

print(cost)