초콜릿 구매

면접 대비

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

요약
각 초콜릿 종류의 가격과 그 종류를 원하는 소의 수가 주어질 때, 예산 B로 최대한 많은 소를 만족시키는 수를 구한다.
난이도

보통10점 중 4점

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

문제

베시와 소 떼는 초콜릿을 무척 좋아해서, 농부 존이 소들에게 초콜릿을 사 주려고 합니다.

초콜릿 가게에는 NN (1≤N≤100,0001 \le N \le 100{,}000)가지 종류의 초콜릿이 사실상 무제한으로 준비되어 있습니다. 각 종류 ii의 초콜릿은 한 개당 가격이 PiP_i (1≤Pi≤10181 \le P_i \le 10^{18})이고, 그 종류를 원하는 소가 CiC_i (1≤Ci≤10181 \le C_i \le 10^{18})마리 있습니다.

농부 존은 소들을 위한 초콜릿에 쓸 수 있는 예산 BB (1≤B≤10181 \le B \le 10^{18})를 가지고 있습니다. 그가 만족시킬 수 있는 소의 최대 마리 수는 얼마일까요? 모든 소는 오직 한 종류의 초콜릿만 원하며, 그 종류를 받아야만 만족합니다.

예를 들어 존이 5가지 종류의 초콜릿에 쓸 예산으로 50을 가지고 있다고 합시다. 총 11마리의 소가 다음과 같은 취향을 가지고 있습니다.

초콜릿 종류개당 가격이 종류를 원하는 소의 수
153
211
3104
472
5601

존은 5번 종류는 살 수 없습니다. 돈이 부족하기 때문입니다. 설령 가격이 50이었더라도 소 한 마리만 만족시키므로 비효율적인 구매입니다.

가장 싼 초콜릿부터 살펴보면, 2번 종류를 1개 사는 데 1×1=11 \times 1 = 1을 써서 50−1=4950 - 1 = 49가 남고, 1번 종류를 3개 사는 데 3×5=153 \times 5 = 15를 써서 49−15=3449 - 15 = 34가 남고, 4번 종류를 2개 사는 데 2×7=142 \times 7 = 14를 써서 34−14=2034 - 14 = 20이 남고, 3번 종류를 2개 사는 데 2×10=202 \times 10 = 20을 써서 20−20=020 - 20 = 0이 됩니다.

따라서 1+3+2+2=81 + 3 + 2 + 2 = 8마리의 소를 만족시킬 수 있습니다.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 NN과 BB
  • 22번째 줄부터 N+1N+1번째 줄까지: ii번째 줄에는 초콜릿 종류 ii를 나타내는 두 정수 PiP_i와 CiC_i가 공백으로 구분되어 주어진다

출력

  • 첫째 줄: 농부 존이 만족시킬 수 있는 소의 최대 마리 수를 나타내는 정수 하나

예제3

  1. 예제 1

    입력
    5 50
    5 3
    1 1
    10 4
    7 2
    60 1
    
    예상 출력
    8
    
  2. 예제 2

    입력
    1 10
    5 2
    
    예상 출력
    2
    
  3. 예제 3

    입력
    1 1
    2 5
    
    예상 출력
    0