만드는 중입니다

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

SW 역량 테스트

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

요약
T분 안에 문제를 골라 연속으로 풀면서 시작 시각에 따라 줄어드는 점수의 합이 최대가 되도록 순서를 정한다.
난이도

보통10점 중 6점

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

문제

SW 역량 테스트는 총 TT분 동안 진행되고, 문제는 NN개가 나온다. 시험이 진행되는 동안 아무 때나 소스 코드를 제출할 수 있다.

ii번 문제를 tt분에 맞히면 Mi−t×PiM_i - t \times P_i점을 받는다. 응시자가 ii번 문제를 푸는 데 걸리는 시간은 RiR_i분이다.

응시자는 한 번에 한 문제만 풀고, 풀기 시작한 문제는 중간에 멈추지 않는다. 어떤 문제를 어떤 순서로 풀지는 자유롭게 정하고, 풀지 않고 넘기는 문제가 있어도 된다. 시험이 시작한 시각을 0분이라고 하면, 푼 문제를 순서대로 이어 붙였을 때 마지막 문제를 맞히는 시각도 TT분을 넘을 수 없다.

최종 점수는 맞힌 문제의 점수를 모두 더한 값이고, 한 문제도 풀지 않으면 0점이다. 응시자가 얻을 수 있는 점수의 최댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 NN과 TT가 주어진다. (1≤N≤501 \le N \le 50, 1≤T≤100 0001 \le T \le 100\,000)

둘째 줄에 M1,M2,…,MNM_1, M_2, \ldots, M_N이, 셋째 줄에 P1,P2,…,PNP_1, P_2, \ldots, P_N이, 넷째 줄에 R1,R2,…,RNR_1, R_2, \ldots, R_N이 공백으로 구분되어 주어진다. (1≤Mi,Pi,Ri≤100 0001 \le M_i, P_i, R_i \le 100\,000)

출력

첫째 줄에 응시자가 얻을 수 있는 점수의 최댓값을 출력한다.

예제4

  1. 예제 1

    입력
    1 74
    502
    2
    47
    
    예상 출력
    408
    
  2. 예제 2

    입력
    2 40000
    100000 100000
    1 100000
    50000 30000
    
    예상 출력
    0
    
  3. 예제 3

    입력
    3 75
    250 500 1000
    2 4 8
    25 25 25
    
    예상 출력
    1200
    
  4. 예제 4

    입력
    3 30
    100 100 100000
    1 1 100
    15 15 30
    
    예상 출력
    97000