만드는 중입니다

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

SHOW ME THE DUNGEON

면접 대비

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

요약
몬스터를 골라 순서대로 물리칠 때 총 체력 소모가 K를 넘지 않으면서 구출할 수 있는 주민 수의 최댓값을 구합니다.
난이도

보통10점 중 5점

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

문제

올여름 출시된 RPG 게임 "SHOW ME THE DUNGEON"에서 주인공 시루는 몬스터에게 침략당한 마을을 구한다. 나라에는 0번부터 N번까지 번호가 붙은 N+1개의 마을이 있다. 0번 마을과 1번부터 N번까지의 마을을 오갈 수 있는 도로가 있고, 이 밖의 도로는 없다. 즉, 도로는 모두 N개이다.

게임이 시작하면 시루는 0번 마을에 있다. 0번 마을을 제외한 1번부터 N번 마을에는 몬스터가 한 마리씩 있다. 시루는 도로를 따라 마을을 방문하며, 한 마을에서 다른 마을로 가려면 반드시 0번 마을을 거쳐야 한다. 시루는 몇 개의 마을을 골라 적당한 순서로 방문해 몬스터와 싸울 것이다.

ii번 마을의 몬스터는 공격력이 AiA_i이고, 그 마을에는 PiP_i명의 주민이 있다. 시루는 마을을 방문하면 몬스터와 싸운 뒤 주민을 해방시킨다. 시루의 초기 체력은 KK이다. 마을 ii를 방문하기 전에 마을 t1,t2,⋯ ,tkt_1, t_2, \cdots, t_k를 방문했다면, 마을 ii에서 몬스터와 싸울 때 체력을 At1+At2+⋯+Atk+AiA_{t_1} + A_{t_2} + \cdots + A_{t_k} + A_i만큼 소모한다. 시루의 체력이 0보다 작아지면 주민을 해방시키지 못하고 게임이 끝난다.

모든 마을의 주민을 해방시키는 것은 불가능할 수 있다. 그래서 시루는 체력을 최대 KK만큼만 소모하면서 최대한 많은 주민을 해방시키려고 한다. 시루가 해방시킬 수 있는 주민 수의 최댓값을 구하시오.

입력

첫째 줄에 몬스터의 수 NN과 시루의 초기 체력 KK가 공백으로 구분되어 주어진다.

둘째 줄에 각 마을 몬스터의 공격력 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 공백으로 구분되어 주어진다.

셋째 줄에 각 마을의 주민 수 P1,P2,⋯ ,PNP_1, P_2, \cdots, P_N이 공백으로 구분되어 주어진다.

입력으로 주어지는 모든 값은 정수이다.

출력

시루가 해방시킬 수 있는 주민 수의 최댓값을 출력한다. 주민을 한 명도 해방시킬 수 없다면 0을 출력한다.

제한

  • 1≤N≤201 \leq N \leq 20
  • 1≤K≤100 0001 \leq K \leq 100\,000
  • 1≤Ai≤100 0001 \leq A_i \leq 100\,000
  • 1≤Pi≤100 0001 \leq P_i \leq 100\,000

예제3

  1. 예제 1

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

    입력
    5 100
    1 1 1 1 1
    10 10 10 10 10
    
    예상 출력
    50
    
  3. 예제 3

    입력
    5 1
    2 2 2 2 2
    2 2 2 2 2
    
    예상 출력
    0