아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

컴퓨터 구매의 가치

면접 대비

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

요약
T가지 부품 종류마다 정확히 하나씩 골라 총 비용을 예산 B 이내로 유지하면서 총 가치를 최대로 만든다.
난이도

보통10점 중 6점

유형
동적 계획법, 배열, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

가장 가성비 좋은 컴퓨터를 직접 조립하려고 합니다. 컴퓨터는 TT (1≤T≤51 \le T \le 5)가지 종류의 부품으로 이루어지며, 각 종류의 부품을 정확히 하나씩 포함해야 합니다.

각 부품은 정수 비용 cic_i (1≤ci≤30001 \le c_i \le 3000), 정수 가치 viv_i (1≤vi≤30001 \le v_i \le 3000), 종류 tit_i (1≤ti≤T1 \le t_i \le T)를 가집니다.

온라인 부품 상점에는 고를 수 있는 NN개 (1≤N≤10001 \le N \le 1000)의 부품이 있습니다.

주어진 예산 BB (1≤B≤30001 \le B \le 3000)에 대해, 총비용이 BB 이하가 되도록 하면서 컴퓨터에 들어가는 부품들의 총 가치를 최대로 만드세요.

이러한 컴퓨터를 조립할 수 없다면 −1-1을 출력합니다.

입력

첫째 줄에는 컴퓨터에 필요한 부품 종류의 수 TT가 주어집니다.

다음 줄에는 NN이 주어지고, 이어서 NN개의 줄에 각각 세 정수 cic_i, viv_i, tit_i가 공백 하나로 구분되어 주어집니다.

마지막 줄에는 예산 BB가 주어집니다.

출력

총비용이 BB 이하인 컴퓨터의 최대 총 가치를 출력합니다. 유효한 컴퓨터를 조립할 수 없다면 −1-1을 출력합니다.

힌트

예제에서 비용이 1111인 부품과 비용이 55인 부품을 고르면 가치가 1818인 컴퓨터가 되며, 더 높은 가치를 내는 조합은 없습니다.

예제3

  1. 예제 1

    입력
    2
    5
    10 6 1
    5 7 1
    6 10 2
    1 5 1
    11 11 2
    16
    
    예상 출력
    18
    
  2. 예제 2

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

    입력
    2
    2
    10 5 1
    10 5 2
    15
    
    예상 출력
    -1