수업 시간표

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

요약
각 범주에서 수업을 하나씩 골라 수업 비용과 0번 위치에서 마지막 위치 L까지 이동하는 비용의 합을 최소화합니다.
난이도

보통10점 중 6점

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

문제

프레드 해커의 학교에는 T×CT \times C개의 수업이 있으며, 이는 각각 TT개의 수업으로 이루어진 CC개의 분류로 나뉩니다. 하루는 1번 분류의 모든 수업이 동시에 진행되는 것으로 시작합니다. 이 수업들이 모두 같은 시각에 끝나면, 그다음에 2번 분류의 모든 수업이 진행되고, 이런 식으로 계속됩니다. 프레드는 각 분류에서 정확히 하나의 수업을 들어야 합니다. 그의 목표는 하루 시간표를 수행하는 데 드는 총 에너지를 최소로 하는 수업 집합을 고르는 것입니다.

시간표의 에너지는, 고른 수업들 자체에 드는 에너지와, 하루 동안 한 수업에서 다음 수업으로 이동하는 데 드는 에너지의 합입니다.

구체적으로, ii번 분류의 jj번째 수업을 들으면 EijE_{ij}만큼의 에너지가 듭니다. 강의실들은 하나의 복도를 따라 정수 위치(00부터 LL까지)에 있으며, ii번 분류의 jj번째 수업은 위치 PijP_{ij}에 있습니다. 프레드는 위치 00에서 하루를 시작해, 고른 시간표에 따라 분류 순서대로 수업에서 수업으로 이동하고, 마지막에 위치 LL에서 나갑니다. 거리 dd만큼 이동하면 dd만큼의 에너지가 듭니다.

입력

첫 번째 줄에는 테스트 케이스의 개수 ZZ (Z≤20Z \le 20)가 주어지고, 그 뒤에 ZZ개의 테스트 케이스가 이어집니다. 각 테스트 케이스는 공백으로 구분된 세 정수 CC, TT, LL로 시작합니다. 이어지는 C×TC \times T개의 줄에는 각각 한 수업의 위치와 에너지 소비량이 주어집니다. 처음 TT개의 줄은 1번 분류의 수업들, 그다음 TT개의 줄은 2번 분류의 수업들, 이런 식입니다. 같은 분류에 속한 두 수업이 같은 위치에 있는 경우는 없습니다.

  • 1≤C≤251 \le C \le 25
  • 1≤T≤10001 \le T \le 1000
  • 1≤L≤1061 \le L \le 10^6
  • 1≤Eij≤1061 \le E_{ij} \le 10^6
  • 0≤Pij≤L0 \le P_{ij} \le L

출력

각 테스트 케이스마다, 제약 조건을 만족하는 시간표의 가능한 최소 에너지를 정수 하나로 한 줄에 출력하세요.

힌트

이 예시에서 프레드는 하루에 3개의 수업(분류마다 하나)을 들어야 하며, 각 분류에서 2개의 선택지가 있습니다. 복도의 길이는 5입니다.

최소 에너지를 얻는 한 가지 방법:

  • 위치 2에 있는 수업으로 갑니다. 지금까지 사용한 총 에너지: 3.
  • 다음으로 위치 4에 있는 수업으로 갑니다. 지금까지 사용한 총 에너지: 6.
  • 그다음 위치 3에 있는 수업으로 갑니다. 지금까지 사용한 총 에너지: 9.
  • 마지막으로 위치 5에서 학교를 나갑니다. 사용한 총 에너지: 11.

예제2

  1. 예제 1

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

    입력
    1
    1 1 10
    5 3
    
    예상 출력
    13