約半年前、難解な問題文だと嘆き、悶絶しながらコードを書いていたころが懐かし良い。
abc203c.py
N,K = map(int,input().split())
#与えられる Ai,Bi は昇順になっていないケースがある
#以下で並び替え
lis = []
for i in range(N):
a,b = map(int,input().split())
lis.append([a,b])
lis.sort()
#ソートしたリストを小さい順から確認していく
plot = 0
ans = 0
for a,b in lis:
target,charge = a,b
#目的時と現在地が同じ場合は K だけチャージ
if target == plot:
K += charge
else:
#目的地と現在地の差が K 以下なら
#給油ポイントに辿り着ける
if target-plot <= K:
K =K-(target-plot)+charge
plot = target
#たどり着けなかったら break
else:
break
#現在地の plot と残りの手持ち金額 K だけ進める
print(plot+K)