슬레이트 모던 (라지)

거대한 R x C 격자의 인접한 칸 값 차이가 D 이하가 되도록 N개의 고정된 칸 값을 지키며 모든 칸을 양의 정수로 채우고, 합의 최댓값을 구하거나 불가능을 판정한다.

어려움9그래프최단 경로수학구현아직 제출이 없습니다시간 제한80초메모리 제한512 MB

문제

슬레이트 모던 갤러리는 회색조 그림만 전시한다. 갤러리에 걸리는 그림은 RRCC열 격자여야 하고, 각 칸은 양의 정수 밝기 값으로 칠한다. 보는 사람이 놀라지 않도록, 변을 맞대고 붙어 있는 두 칸의 밝기 차이는 DD 이하여야 한다. 꼭짓점만 닿는 두 칸에는 이 조건이 적용되지 않는다.

화가 코디자말은 어젯밤 영감을 받아 서로 다른 칸 NN개를 골라 양의 정수 밝기 값을 칠해 두었다. 오늘에야 갤러리의 규칙을 들은 코디자말은 남은 칸을 모두 양의 정수 밝기 값으로 채워 규칙에 맞는 그림을 완성할 수 있는지 알고 싶어 한다. 완성할 수 있다면 검은 물감을 아끼기 위해 모든 칸의 밝기 값 합을 최대로 만들려고 한다. 합이 매우 커질 수 있으므로, 최대 합을 소수 109+710^9+7로 나눈 나머지를 구한다.

입력

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

각 테스트 케이스의 첫 줄에는 네 정수 RR, CC, NN, DD가 공백으로 구분되어 주어진다. 이어지는 NN개의 줄 중 ii번째 줄에는 세 정수 RiR_i, CiC_i, BiB_i가 주어진다. 이는 격자의 RiR_iCiC_i열 칸이 이미 밝기 값 BiB_i로 칠해져 있다는 뜻이다. 행 번호와 열 번호는 1부터 시작한다.

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이다. 그림을 완성할 수 없으면 yyIMPOSSIBLE이고, 완성할 수 있으면 yy는 모든 칸의 밝기 값 합의 최댓값을 109+710^9+7로 나눈 나머지이다.

제한

  • 1T1001 \le T \le 100
  • 1R1091 \le R \le 10^9
  • 1C1091 \le C \le 10^9
  • 1N2001 \le N \le 200
  • 1D1091 \le D \le 10^9
  • 모든 ii에 대해 1RiR1 \le R_i \le R, 1CiC1 \le C_i \le C, 1Bi1091 \le B_i \le 10^9이다. 10910^9이라는 상한은 코디자말이 이미 칠한 칸에만 적용된다. 나머지 칸에는 10910^9보다 큰 밝기 값을 써도 된다.
  • N<R×CN < R \times C이다. 즉, 비어 있는 칸이 적어도 하나 있다.
  • iji \ne j이면 RiRjR_i \ne R_j이거나 CiCjC_i \ne C_j이다. 즉, 주어지는 칸은 모두 서로 다르다.

설명

첫 번째 예제의 1번 테스트 케이스에서 합을 최대로 만드는 그림은 다음과 같고, 합은 40이다.

6 7 9
4 6 8

2번 테스트 케이스에서 최적의 그림은 2000000000 1000000000이고 합은 3000000000이다. 이를 109+710^9+7로 나눈 나머지는 999999986이다.

3번 테스트 케이스는 완성할 수 없다. 2행 칸에 어떤 값을 넣어도 위아래로 이미 칠해진 두 칸 중 적어도 하나와 차이가 너무 커진다.

4번 테스트 케이스에서는 코디자말이 이미 칠한 두 칸의 밝기 차이가 너무 커서 그림을 이어 나갈 수 없다.