복권
면접 대비시간 제한1초메모리 제한128 MB
각 바구니의 당첨과 낙첨 개수를 보고 최소 매수로 g장 이상의 당첨을 보장하도록 구매합니다.
- 난이도
보통10점 중 5점
- 유형
- 동적 계획법
- 정답자
- 아직 제출이 없습니다
문제
어느 학교 행사에서 바구니 개를 준비하고, 각 바구니에 복권을 여러 장 넣었다. 복권 중 일부는 당첨 복권이며, 당첨 복권을 뽑으면 수업 한 시간을 사유 없이 빠질 수 있는 권리를 얻는다.
Kozik은 올해 총 시간을 빠지고 싶어 한다. 따라서 당첨 복권을 최소 장 확보해야 한다. 그런데 어떤 복권이 자기 손에 들어올지는 고를 수 없으므로, 어떤 복권이 나오더라도 산 복권 안에 당첨 복권이 반드시 장 이상 포함되도록 확실하게 사야 한다. 돈이 넉넉하지 않아, 사는 복권 수를 최소로 하고 싶다.
Kozik은 각 바구니에 당첨 복권과 꽝 복권이 각각 몇 장인지 정확히 안다. 한 바구니에서 복권을 뽑을 때는 최악의 경우를 가정한다. 즉, 그 바구니의 꽝 복권이 모두 먼저 나온 뒤에야 당첨 복권이 나온다. 따라서 당첨 복권 장과 꽝 복권 장이 든 바구니에서 당첨 복권 장()을 확실히 얻으려면 그 바구니에서 장을 사야 한다.
당첨 복권을 최소 장 확실히 확보하기 위해 Kozik이 사야 하는 복권 수의 최솟값을 구하여라.
입력
첫 줄에 두 정수 , (, )가 주어진다. 각각 바구니의 수와 Kozik이 빠지고 싶은 시간 수를 뜻한다.
다음 개의 줄에 각 바구니의 정보가 주어진다. 번째 줄에는 두 정수 , (, )가 있으며, 각각 번째 바구니의 당첨 복권 수와 꽝 복권 수를 뜻한다.
출력
당첨 복권을 최소 장 확실히 확보하기 위해 사야 하는 복권 수의 최솟값을 정수 하나로 출력한다. 만약 불가능하다면(모든 바구니의 당첨 복권을 합쳐도 장이 되지 않으면) 대신 NIE를 출력한다.