atcoder ABC 309 C - Medicineの解答
・考え方:飲み終わるのが遅い順にソートして、累積和を取る。累積和がKを超えたら、そのindexがそのまま答えのaのindexに相当する。
n,k=map(int,input().split()) ab=[list(map(int,input().split())) for _ in range(n)] ab.sort(reverse=True) tmp=[] t=0 #最後まで飲む順で累積和 for i in range(n): t+=ab[i][1] tmp.append(t) #累積和がkを超えたら、そのindexのaの値+1を出力する。 for i in range(n): if tmp[i]>k: print(ab[i][0]+1) exit() print(1) #超えなかったら1日目でK以下である