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

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

열차 승차권 배분

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

요약
각 역 쌍마다 팔 티켓 수를 정해 유료 승객과 무료 승객 합이 모든 구간에서 정원 P를 넘지 않게 하면서 총수입을 최대화합니다.
난이도

보통10점 중 7점

유형
그래프, 최단 경로, 구간
정답자
아직 제출이 없습니다

문제

한 열차가 1번 역에서 출발해 번호 순서대로 역을 지나 NN번 역에서 멈춘다. i<ji < j이면 ii번 역에서 jj번 역까지 가는 승차권을 팔 수 있다.

법으로 ii번 역에서 jj번 역까지 가는 승차권 가격 CijC_{ij}가 미리 정해져 있고, 그 구간의 수요 DijD_{ij}도 출발 전에 정확히 알 수 있다. 그래서 각 구간의 승차권을 0장부터 DijD_{ij}장까지 원하는 만큼 팔 수 있다. 정부는 여기에 더해 ii번 역에서 jj번 역까지 가는 무료 승차권 OijO_{ij}장을 따로 확보한다. 무료 승차권을 쓰는 승객도 자리를 차지하지만 수입은 없다.

열차 정원은 PP명이다. 이웃한 두 역 사이의 어느 구간에서도 무료 승차권 승객을 포함한 탑승객 수가 PP를 넘으면 안 된다. 정원을 넘겨 파는 것은 허용하지 않는다.

승차권을 가장 잘 배분했을 때 얻는 수입을 구하라.

입력

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

각 테스트 케이스의 첫 줄에는 역의 수 NN과 열차 정원 PP가 주어진다. 이어지는 N−1N-1개 줄에는 승차권 가격이 주어진다. 그중 ii번째 줄에는 N−iN-i개의 수가 있고, 그 줄의 jj번째 수가 ii번 역에서 i+ji+j번 역까지 가는 승차권 가격 Ci,i+jC_{i,i+j}이다. 다음 N−1N-1개 줄에는 같은 형식으로 수요 DijD_{ij}가 주어지고, 그다음 N−1N-1개 줄에는 같은 형식으로 정부가 확보한 무료 승차권 수 OijO_{ij}가 주어진다.

  • 0<T≤1000 < T \le 100
  • 3≤N≤163 \le N \le 16
  • 0<P≤2000 < P \le 200
  • 0<Cij≤10000 < C_{ij} \le 1000
  • 0≤Dij≤2500 \le D_{ij} \le 250
  • 0≤Oij≤200 \le O_{ij} \le 20
  • 무료 승차권만으로 정원을 넘는 경우는 없다.

출력

각 테스트 케이스마다 얻을 수 있는 최대 수입을 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    1
    3 4
    6 7
    3
    4 1
    1
    2 1
    0
    
    예상 출력
    10
    
  2. 예제 2

    입력
    1
    3 5
    5 9
    5
    5 5
    5
    0 0
    0
    
    예상 출력
    50