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

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

햄스터

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

요약
상하는 날짜와 끼니 수와 품질이 정해진 식품을 순서대로 배치해 M일 동안 총 품질을 최대화합니다.
난이도

보통10점 중 7점

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

문제

헥토르(Hektor)의 햄스터는 여러 세대에 걸쳐 독특한 식습관을 이어 온 시리아 햄스터 명문가 출신입니다. 이 햄스터는 하루에 오직 한 끼만 먹으며, 한 끼는 한 종류의 먹이로만 이루어집니다.

헥토르는 햄스터를 위해 NN가지 먹이를 준비했습니다. 그는 개봉한 봉지를 여러 개 두는 것을 싫어해서, 지금 열려 있는 봉지를 다 먹거나 버리기 전에는 새 봉지를 열지 않습니다. 각 먹이는 세 개의 수로 표현됩니다: 며칠 뒤에 상하는지, 몇 끼를 먹을 수 있는지, 그리고 그 먹이의 품질입니다.

어떤 먹이가 pp끼 분량이고 qq일째에 개봉되면, (그 전에 상하지 않는 한) p+q−1p + q - 1일째 식사를 마친 직후에 다 떨어집니다. 어떤 먹이가 kk일 뒤에 상한다면, 늦어도 kk일째 그날 식사를 마친 직후에는 버려야 합니다. 즉, 언제 개봉했든 kk일째가 그 먹이를 먹을 수 있는 마지막 날입니다.

헥토르가 첫 MM일 동안 햄스터에게 차려 줄 수 있는 식사 품질의 합의 최댓값을 구하세요. 사 온 먹이 외에도 헥토르에게는 절대 상하지 않는 군용 식량이 얼마든지 있지만, 햄스터가 몹시 싫어해서 품질이 00입니다. 덕분에 사 온 먹이가 다 떨어져도 햄스터가 굶을 일은 없습니다.

입력

첫째 줄에 테스트 케이스의 수 ZZ가 주어집니다 (1≤Z≤101 \le Z \le 10).

각 테스트 케이스의 첫째 줄에는 두 정수 NN과 MM이 주어집니다 (1≤N,M≤20001 \le N, M \le 2000).

이어지는 NN개의 줄에는 각각 한 종류의 먹이가 20012001보다 작은 세 개의 음이 아닌 정수로 주어집니다: 며칠 뒤에 상하는지, 몇 끼를 먹을 수 있는지, 그 먹이 한 끼의 품질입니다.

출력

각 테스트 케이스마다, 헥토르가 첫 MM일 동안 햄스터에게 차려 줄 수 있는 식사 품질의 합의 최댓값을 한 줄에 출력하세요.

예제2

  1. 예제 1

    입력
    1
    3 3 
    2 1 3 
    2 2 2
    3 3 1
    
    예상 출력
    6
    
  2. 예제 2

    입력
    1
    1 1
    5 3 4
    
    예상 출력
    4