만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

색깔 타일 4

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

요약
H x W 보드에 색과 크기(1x1 또는 1x2)가 정해진 타일 N개를 겹치지 않게 놓아, 인접한 타일 변마다 얻는 점수의 합을 최대로 하는 배치를 구합니다.
난이도

어려움10점 중 9점

유형
그래프, 행렬, 구현
정답자
아직 제출이 없습니다

문제

2018년에 일본에서 국제정보올림피아드(IOI)가 열립니다. 이를 기념하기 위해 IOI 위원회는 "약간 이상한 디자인"의 예술 작품을 만들어 대회장을 꾸미기로 했습니다. 위원회는 디자인을 JOI(Just Odd Inventions) 사에 맡겼고, JOI는 다음과 같이 제안했습니다.

  • 작품은 H×WH \times W 칸의 직사각형 보드 위에 만든다. 보드는 NN개의 타일로 채우며, 타일끼리는 겹치지 않는다.
  • 타일 ii (1≤i≤N1 \le i \le N)의 크기는 1×11 \times 1 또는 1×21 \times 2이고, 색은 CiC_i이다.
  • 1×21 \times 2 타일은 회전해서 2×12 \times 1 타일로도 쓸 수 있다.

JOI는 타일의 종류까지만 제안했고, 타일을 어떻게 까는지는 정하지 않았습니다. 위원회는 타일 종류에 대한 JOI의 제안을 그대로 따르면서, 디자인의 아름다움이 최대가 되도록 타일을 까는 방법을 찾아야 합니다.

보드에서 두 타일이 칸의 변을 맞대고 있고 색이 각각 jj, kk이면, 그 변의 점수는 Aj,kA_{j,k}입니다. 디자인의 아름다움은 이런 변 점수의 합입니다. 두 1×21 \times 2 타일이 두 칸의 변을 공유하면 두 변의 점수를 각각 따로 더합니다. 아름다움이 최대가 되는 배치를 구하세요.

입력

첫 줄에 네 정수 HH, WW, KK, NN이 빈칸으로 구분되어 주어진다. 보드는 H×WH \times W 칸이고, 색은 KK가지이며, 타일은 NN개이다.

ii번째 줄(1≤i≤N1 \le i \le N)에는 두 정수 SiS_i, CiC_i가 주어진다. 타일 ii의 크기는 1×Si1 \times S_i이고, 색은 CiC_i이다.

jj번째 줄(1≤j≤K1 \le j \le K)에는 KK개의 정수 Aj,1,Aj,2,…,Aj,KA_{j,1}, A_{j,2}, \ldots, A_{j,K}가 주어진다. 색 jj 타일과 색 kk 타일이 변을 공유하면 그 점수는 Aj,kA_{j,k}이다.

출력

NN줄을 출력한다. ii번째 줄에는 타일 ii를 놓는 방법을 적는다.

  • Si=1S_i = 1이면 두 정수 AiA_i, BiB_i를 출력한다. 타일은 위에서 AiA_i번째 행, 왼쪽에서 BiB_i번째 열의 칸에 놓인다.
  • Si=2S_i = 2이면 네 정수 AiA_i, BiB_i, CiC_i, DiD_i를 출력한다. 타일은 위에서 AiA_i번째 행, 왼쪽에서 BiB_i번째 열의 칸과, 위에서 CiC_i번째 행, 왼쪽에서 DiD_i번째 열의 칸을 덮는다.

제한

모든 입력은 다음 조건을 만족한다.

  • 1≤H≤1001 \le H \le 100
  • 1≤W≤1001 \le W \le 100
  • 1≤K≤1001 \le K \le 100
  • 1≤N≤100001 \le N \le 10000
  • 1≤Si≤21 \le S_i \le 2 (1≤i≤N1 \le i \le N)
  • 1≤Ci≤K1 \le C_i \le K (1≤i≤N1 \le i \le N)
  • H×W=S1+S2+⋯+SNH \times W = S_1 + S_2 + \cdots + S_N
  • 0≤Aj,k≤10000 \le A_{j,k} \le 1000 (1≤j≤K1 \le j \le K, 1≤k≤K1 \le k \le K)
  • Aj,k=Ak,jA_{j,k} = A_{k,j} (1≤j≤K1 \le j \le K, 1≤k≤K1 \le k \le K)

힌트

이 입력 예시에서 보드 크기는 3×23 \times 2이고, 타일 4개를 사용합니다. 타일의 색과 크기는 다음과 같습니다.

번호색크기
111×11 \times 1
221×21 \times 2
331×11 \times 1
411×21 \times 2

아래 그림은 타일을 놓은 모습이며, 그림의 숫자는 타일 번호입니다.

이 배치의 아름다움은 26입니다.

  • 타일 2(색 2)와 타일 4(색 1)가 변을 공유하므로 점수 7을 얻습니다.
  • 타일 2(색 2)와 타일 1(색 1)이 변을 공유하므로 점수 7을 얻습니다.
  • 타일 4(색 1)와 타일 1(색 1)이 변을 공유하므로 점수 2를 얻습니다.
  • 타일 4(색 1)와 타일 3(색 3)이 변을 공유하므로 점수 5를 얻습니다.
  • 타일 1(색 1)과 타일 3(색 3)이 변을 공유하므로 점수 5를 얻습니다.

예제1

  1. 예제 1

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