만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

작은 박사 식당

시간 제한2초메모리 제한512 MB

요약
각 도전의 비용 A_i와 보상 B_i, 시작 금액 M이 주어질 때, 매 도전의 비용을 지불할 수 있도록 순서를 정해 최종 금액을 최대로 만든다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 동적 계획법
정답자
아직 제출이 없습니다

문제

"아마 어딘가에는 웨이터 전원이 무언가의 박사 학위를 받은 식당이 있을 것이다." 두두, 2014년

두두는 배가 고파서 태국 음식점에 들어갔다. 자리에 앉고 나서야 알았는데, 그곳은 직원 모두가 무언가의 박사 학위를 받은 박사 식당이었다.

직원은 각자 자기 전공과 관련된 과제를 하나씩 준비해 두었고, 두두는 음식을 기다리는 동안 그 과제에 도전한다. ii번 직원의 과제는 도전하려면 AiA_i를 내야 하고, 성공하면 BiB_i를 받는다.

과제는 각각 최대 한 번만 풀 수 있고, 도전하는 순서는 마음대로 정할 수 있다. 두두는 아주 똑똑해서 어떤 과제든 반드시 성공하지만, ii번 과제에 도전하기 전에 AiA_i를 낼 수 있어야 한다. 두두가 처음 가진 돈이 MM일 때, 두두가 최종적으로 얻을 수 있는 금액의 최댓값을 구하라.

입력

첫 줄에 과제의 개수 NN과 두두가 처음 가진 돈 MM이 정수로 주어진다.

둘째 줄에 NN개의 정수 A1,A2,…,ANA_1, A_2, \dots, A_N이 주어진다. AiA_i는 ii번 과제에 도전하는 비용이다.

셋째 줄에 NN개의 정수 B1,B2,…,BNB_1, B_2, \dots, B_N이 주어진다. BiB_i는 ii번 과제를 성공했을 때 받는 금액이다.

  • 1≤N≤10001 \le N \le 1000
  • 0≤M,Ai,Bi≤1060 \le M, A_i, B_i \le 10^6

출력

두두가 얻을 수 있는 금액의 최댓값을 정수 하나로 출력한다.

힌트

첫 번째 예제에서 두두는 100으로 시작해 다음 순서로 진행할 수 있다.

  • 80을 내고 90을 받는다. 이제 110이 있다.
  • 50을 내고 70을 받는다. 이제 130이 있다.
  • 110을 내고 150을 받는다. 이제 170이 있다.

예제4

  1. 예제 1

    입력
    5 100
    40 80 50 200 110
    20 90 70 300 150
    
    예상 출력
    170
    
  2. 예제 2

    입력
    3 1
    5 1 3
    100 3 6
    
    예상 출력
    101
    
  3. 예제 3

    입력
    4 50
    10 20 30 40
    5 10 15 20
    
    예상 출력
    50
    
  4. 예제 4

    입력
    2 0
    1 2
    100 200
    
    예상 출력
    0