뷔페에서 접시 채우기

접시 넓이와 각 음식의 단위 넓이당 가치, 가용 넓이가 주어질 때 일부를 잘라 담아 접시 위 가치 합을 최대로 만든다.

보통4그리디정렬면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

정해진 코스 대신 원하는 만큼 먹을 수 있는 뷔페식 점심과 저녁을 파는 식당이 있다. 배고픈 학생에게는 대개 이쪽이 이득이다. 앨리스는 뷔페를 좋아하지만 접시를 어떻게 채워야 가장 좋은지 늘 고민한다. 앨리스는 메뉴에 오른 nn가지 음식마다 가치를 다르게 매긴다. 접시 넓이가 한정되어 있고 음식마다 준비된 양도 한정되어 있는데, 이 제약 아래에서 접시에 담은 가치의 합을 최대로 만들려고 한다. 다행히 메뉴의 음식은 모두 나누기 쉬워서 앨리스는 각 음식을 원하는 만큼만 덜어 갈 수 있다. 앨리스가 접시를 채우도록 도와주자.

입력

입력은 n+2n + 2개의 줄로 이루어진다.

  • 첫째 줄에 메뉴에 오른 음식의 가짓수 nn이 주어진다.
  • 둘째 줄에 앨리스의 접시 넓이 aa가 주어진다. 단위는 mm2^2이고 정수이다.
  • 이어지는 nn개의 줄에는 음식 하나의 정보가 공백으로 구분된 두 정수로 주어진다. 첫 번째 정수는 앨리스가 매긴 음식 ii의 mm2^2당 가치 viv_i이다. 두 번째 정수는 음식 ii를 남김없이 접시로 옮겼을 때 차지하는 넓이 aia_i이고, 단위는 mm2^2이다.

제한

  • 1n10001 \le n \le 1000
  • 0a1000000 \le a \le 100000
  • 0in10 \le i \le n - 1인 모든 ii에 대해
    • 0vi1000 \le v_i \le 100
    • 0ai1000000000 \le a_i \le 100000000

출력

앨리스가 접시에 담을 수 있는 가치의 최댓값을 정수 하나로 한 줄에 출력한다. 넓이와 단위 가치가 모두 정수이므로 이 최댓값은 항상 정수이다.