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

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

복권

면접 대비

시간 제한1초메모리 제한128 MB

요약
각 바구니의 당첨과 낙첨 개수를 보고 최소 매수로 g장 이상의 당첨을 보장하도록 구매합니다.
난이도

보통10점 중 5점

유형
동적 계획법
정답자
아직 제출이 없습니다

문제

어느 학교 행사에서 바구니 nn개를 준비하고, 각 바구니에 복권을 여러 장 넣었다. 복권 중 일부는 당첨 복권이며, 당첨 복권을 뽑으면 수업 한 시간을 사유 없이 빠질 수 있는 권리를 얻는다.

Kozik은 올해 총 gg시간을 빠지고 싶어 한다. 따라서 당첨 복권을 최소 gg장 확보해야 한다. 그런데 어떤 복권이 자기 손에 들어올지는 고를 수 없으므로, 어떤 복권이 나오더라도 산 복권 안에 당첨 복권이 반드시 gg장 이상 포함되도록 확실하게 사야 한다. 돈이 넉넉하지 않아, 사는 복권 수를 최소로 하고 싶다.

Kozik은 각 바구니에 당첨 복권과 꽝 복권이 각각 몇 장인지 정확히 안다. 한 바구니에서 복권을 뽑을 때는 최악의 경우를 가정한다. 즉, 그 바구니의 꽝 복권이 모두 먼저 나온 뒤에야 당첨 복권이 나온다. 따라서 당첨 복권 ww장과 꽝 복권 pp장이 든 바구니에서 당첨 복권 kk장(k≤wk \le w)을 확실히 얻으려면 그 바구니에서 p+kp + k장을 사야 한다.

당첨 복권을 최소 gg장 확실히 확보하기 위해 Kozik이 사야 하는 복권 수의 최솟값을 구하여라.

입력

첫 줄에 두 정수 nn, gg(1≤n≤100001 \le n \le 10000, 1≤g≤10001 \le g \le 1000)가 주어진다. 각각 바구니의 수와 Kozik이 빠지고 싶은 시간 수를 뜻한다.

다음 nn개의 줄에 각 바구니의 정보가 주어진다. ii번째 줄에는 두 정수 wiw_i, pip_i(0≤wi≤1090 \le w_i \le 10^9, 0≤pi≤1090 \le p_i \le 10^9)가 있으며, 각각 ii번째 바구니의 당첨 복권 수와 꽝 복권 수를 뜻한다.

출력

당첨 복권을 최소 gg장 확실히 확보하기 위해 사야 하는 복권 수의 최솟값을 정수 하나로 출력한다. 만약 불가능하다면(모든 바구니의 당첨 복권을 합쳐도 gg장이 되지 않으면) 대신 NIE를 출력한다.

예제2

  1. 예제 1

    입력
    4 3
    2 5
    0 5
    2 0
    2 2
    
    예상 출력
    5
    
  2. 예제 2

    입력
    1 5
    2 3
    
    예상 출력
    NIE