모닝커피 (Large)

유통기한 안에 하루 한 잔씩 마실 커피를 골라 총 만족도를 최대로 합니다.

보통5그리디정렬면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

코코아는 아침마다 커피를 한 잔 마시면서 하루를 시작한다.

찬장에는 커피가 NN종류 있다. ii번 커피는 cic_i잔 남아 있고, 오늘을 1일째로 두면 tit_i일째까지 마실 수 있다. 유통기한이 지난 커피는 마실 수 없지만, 딱 tit_i일째에는 아직 마실 수 있다. 예를 들어 ti=1t_i = 1이면 그 커피는 오늘 안에 마시거나 버려야 한다.

ii번 커피를 한 잔 마시면 만족도 sis_i를 얻는다. 코코아는 하루에 아침 한 번, 한 잔만 마신다. 마실 커피가 남아 있지 않은 날에는 만족도를 얻지 못한다. 1일째부터 KK일째까지 커피를 마실 때 얻을 수 있는 만족도 합의 최댓값을 구하라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 공백 하나로 구분된 두 양의 정수, 커피의 종류 수 NN과 계산할 날짜 수 KK가 주어진다. 이어지는 NN개의 줄에는 커피 한 종류마다 남은 잔 수, 마실 수 있는 마지막 날, 만족도가 다음 형식으로 주어진다.

ci ti si

값의 범위는 다음과 같다.

  • 1T1001 \le T \le 100
  • 1N1001 \le N \le 100
  • 1K2×10121 \le K \le 2 \times 10^{12}
  • 1ciK1 \le c_i \le K
  • 1tiK1 \le t_i \le K
  • 1si10001 \le s_i \le 1000

KK는 32비트 정수의 범위를 넘을 수 있다.

출력

각 테스트 케이스마다 다음 형식으로 한 줄씩 출력한다.

Case #X: Y

XX는 1부터 시작하는 테스트 케이스의 번호이고, YY는 만족도 합의 최댓값이다.