갱스터

시간 제한1초메모리 제한128 MB

요약
문 열림 상태가 단위 시간당 1 이하로 변하는 규칙 아래, 0에서 시작해 각 갱스터의 도착 시각에 그의 뚱뚱함과 상태가 일치하도록 조절해 얻는 총 재산의 최댓값을 구한다.
난이도

보통10점 중 7점

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

문제

NN명의 갱스터가 식당에 가려고 한다. ii번째 갱스터는 시각 TiT_i에 도착하며, 이득 PiP_i를 가진다. 식당 문은 [0,K][0, K] 범위의 정수로 표현되는 K+1K+1가지 열림 상태를 가진다. 열림 상태는 단위 시간마다 11만큼만 변할 수 있다. 즉, 11만큼 더 열리거나, 11만큼 더 닫히거나, 그대로 유지된다. 처음 시각에 문은 닫혀 있다(상태 00).

ii번째 갱스터는 문이 자신을 위해 특별히 열려 있을 때에만, 즉 열림 상태가 자신의 완고함 SiS_i와 정확히 일치할 때에만 식당에 들어간다. 갱스터가 도착한 시각에 열림 상태가 그의 SiS_i와 다르면, 그 갱스터는 떠나고 다시는 돌아오지 않는다.

식당은 시간 구간 [0,T][0, T] 동안 영업한다.

문을 적절히 여닫아서 식당에 모인 갱스터들의 이득 총합을 최대로 만드는 것이 목표이다.

입력

첫째 줄에 공백으로 구분된 세 정수 NN, KK, TT가 주어진다. (1≤N≤1001 \le N \le 100, 1≤K≤1001 \le K \le 100, 0≤T≤30,0000 \le T \le 30{,}000)

둘째 줄에 각 갱스터가 도착하는 시각 T1,T2,…,TNT_1, T_2, \dots, T_N이 공백으로 구분되어 주어진다. (0≤Ti≤T0 \le T_i \le T, i=1,2,…,Ni = 1, 2, \dots, N)

셋째 줄에 각 갱스터의 이득 P1,P2,…,PNP_1, P_2, \dots, P_N이 공백으로 구분되어 주어진다. (0≤Pi≤3000 \le P_i \le 300, i=1,2,…,Ni = 1, 2, \dots, N)

넷째 줄에 각 갱스터의 완고함 S1,S2,…,SNS_1, S_2, \dots, S_N이 공백으로 구분되어 주어진다. (1≤Si≤K1 \le S_i \le K, i=1,2,…,Ni = 1, 2, \dots, N)

입력의 모든 값은 정수이다.

출력

식당에 모인 갱스터들의 이득의 최대 합을 정수 하나로 출력한다. 어떤 갱스터도 식당에 들어갈 수 없는 경우에는 00을 출력한다.

예제3

  1. 예제 1

    입력
    4 10 20
    10 16 8 16
    10 11 15 1
    10 7 1 8
    
    예상 출력
    26
    
  2. 예제 2

    입력
    1 5 10
    5
    42
    3
    
    예상 출력
    42
    
  3. 예제 3

    입력
    2 5 5
    3 3
    10 20
    2 2
    
    예상 출력
    30