아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

ゲーム

시간 제한8초메모리 제한1024 MB

요약
초기 즐거움 A_i와 감소량 B_i를 가진 N개의 게임을 D일 동안 하루에 하나씩 골라 플레이할 때, 플레이한 게임의 즐거움 합의 최댓값을 구한다.
난이도

보통10점 중 7점

유형
그리디, 수학, 정렬, 구현
정답자
아직 제출이 없습니다

문제

N 種類のゲームがある.これから D 日間,ゲームを一日に一つずつ遊ぶ.あるゲームを複数回遊んでもよく,また一回も遊ばないゲームがあってもよい.

i 番目のゲームの楽しさの初期値は Ai である.このゲームを一日遊ぶと,翌日には,その楽しさは Bi だけ減少する.逆に,このゲームを一日遊ばないでいると,翌日には,その楽しさは(初期値を超えない範囲で) Bi だけ回復する.すなわち,ある日の i 番目のゲームの楽しさが x であった場合,このゲームの翌日の楽しさは,このゲームを遊んだ場合は x - Bi に,遊ばなかった場合は min(x + Bi, Ai) に,それぞれ変化する.

D 日間でのゲームの遊び方として考えられるものは ND 通りあるが,このうち遊んだゲームの楽しさの合計が最大となるような遊び方をしたときの,その楽しさの合計の値を求めよ.

입력

入力は 50 個以下のデータセットからなる.各データセットは次の形式で表される.

N D

A1 B1

...

AN BN

1 行目には整数 N および D が与えられる.N はゲームの種類数であり,1 ≤ N ≤ 100,000 を満たす.D はゲームを遊ぶ日数であり,1 ≤ D ≤ 100,000 を満たす.

続く N 行には,N 種類のゲームの情報が与えられる.このうち i 番目の行には整数 Ai および Bi が与えられる.Ai は i 番目のゲームの楽しさの初期値であり, 1 ≤ Ai ≤ 100,000 を満たす.Bi は i 番目のゲームを遊んだときの楽しさの減少量であり, 1 ≤ Bi ≤ 100,000 を満たす.

入力の終わりは 2 つのゼロからなる行で表される.

출력

各データセットに対し,答えを一行に出力せよ.

힌트

最初のデータセットでは,ゲーム 1,ゲーム 2,ゲーム 1 の順番で遊んだとき,楽しさの合計が 10 + 1 + 10 = 21 となる.

二番目のデータセットでは,ゲーム 1 を三日連続で遊んだとき,楽しさの合計が 10 + 9 + 8 = 27 となる.

예제1

  1. 예제 1

    입력
    2 3
    10 10
    1 1
    1 3
    10 1
    1 6
    3 1
    0 0
    
    예상 출력
    21
    27
    3