만드는 중입니다

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

Road Service 2

시간 제한3초메모리 제한1024 MB

요약
격자 모양 도로망에서 동서 도로마다 1일 또는 2일이 드는 보수를 골라, 각 질의의 교차점들을 모두 연결하는 최소 보수 기간을 구합니다.
난이도

어려움10점 중 8점

유형
그래프, 유니온 파인드, 최소 신장 트리
정답자
아직 제출이 없습니다

문제

JOI 시에는 무한히 긴 동서 방향 도로 HH개와 무한히 긴 남북 방향 도로 WW개로 이루어진 격자 모양의 도로망이 있다. 교차점 (i,j)(i, j) (1≤i≤H1 \le i \le H, 1≤j≤W1 \le j \le W)는 북쪽에서 ii번째 동서 도로와 서쪽에서 jj번째 남북 도로가 만나는 지점이다.

도로 상태가 좋지 않아 일부 도로는 막혀 있다.

  • 북쪽에서 ii번째 동서 도로에서 교차점 (i,j)(i, j)와 (i,j+1)(i, j + 1)을 잇는 구간 (1≤j≤W−11 \le j \le W - 1)은 Ai,j=0A_{i, j} = 0이면 막혀 있고, Ai,j=1A_{i, j} = 1이면 통행할 수 있다.
  • 서쪽에서 jj번째 남북 도로에서 교차점 (i,j)(i, j)와 (i+1,j)(i + 1, j)를 잇는 구간 (1≤i≤H−11 \le i \le H - 1)은 Bi,j=0B_{i, j} = 0이면 막혀 있고, Bi,j=1B_{i, j} = 1이면 통행할 수 있다.
  • 나머지 도로 구간 (격자 교차점 바깥 부분)은 모두 막혀 있다.

JOI 시장 K는 도로망의 보수 계획을 세우고 있다. 보수 계획은 0회 이상의 보수로 이루어진다. 보수는 1≤i≤H1 \le i \le H를 만족하는 정수 ii를 골라 다음을 수행하는 것이다.

모든 정수 jj (1≤j≤W−11 \le j \le W - 1)에 대해, 북쪽에서 ii번째 동서 도로의 교차점 (i,j)(i, j)와 (i,j+1)(i, j + 1)을 잇는 구간이 막혀 있으면 통행할 수 있게 만든다.

보수 하나에는 CiC_i일이 걸린다. CiC_i는 11 또는 22이다. 보수는 동시에 진행할 수 없으므로, 보수 계획의 기간은 계획에 포함된 보수들에 걸린 날짜의 합이다.

K 시장은 도시 시설 사이의 경로를 확보하는 일을 중요하게 여기며 QQ개의 질문을 한다. kk번째 질문은 다음과 같다.

TkT_k개의 교차점 (Xk,1,Yk,1),(Xk,2,Yk,2),…,(Xk,Tk,Yk,Tk)(X_{k,1}, Y_{k,1}), (X_{k,2}, Y_{k,2}), \dots, (X_{k,T_k}, Y_{k,T_k})를 서로 도달 가능하게 만드는 보수 계획이 있는가? 있다면 그러한 계획의 기간 최솟값은 얼마인가?

도로 상태, 동서 도로별 보수 일수, 그리고 질문 내용이 주어졌을 때 모든 질문에 답하는 프로그램을 작성하라.

입력

입력은 다음 형식으로 주어진다.

H W Q
A_{1,1}A_{1,2} ... A_{1,W-1}
A_{2,1}A_{2,2} ... A_{2,W-1}
...
A_{H,1}A_{H,2} ... A_{H,W-1}
B_{1,1}B_{1,2} ... B_{1,W}
B_{2,1}B_{2,2} ... B_{2,W}
...
B_{H-1,1}B_{H-1,2} ... B_{H-1,W}
C_1 C_2 ... C_H
Query_1
Query_2
...
Query_Q

각 QuerykQuery_k는 다음 형식이다.

T_k
X_{k,1} Y_{k,1}
X_{k,2} Y_{k,2}
...
X_{k,T_k} Y_{k,T_k}

출력

QQ개의 줄을 출력한다. kk번째 줄에는 TkT_k개의 교차점을 서로 도달 가능하게 만드는 보수 계획 기간의 최솟값을 출력한다. 그런 계획이 없으면 −1-1을 출력한다.

제한

  • 2≤H2 \le H, 2≤W2 \le W, H×W≤1,000,000H \times W \le 1{,}000{,}000.
  • 1≤Q≤100,0001 \le Q \le 100{,}000, T1+T2+⋯+TQ≤200,000T_1 + T_2 + \cdots + T_Q \le 200{,}000.
  • 모든 kk에 대해 2≤Tk2 \le T_k.
  • 각 Ai,jA_{i,j}와 Bi,jB_{i,j}는 00 또는 11이다.
  • 각 CiC_i는 11 또는 22이다.
  • 1≤Xk,l≤H1 \le X_{k,l} \le H, 1≤Yk,l≤W1 \le Y_{k,l} \le W.
  • 각 질문의 TkT_k개 교차점은 서로 다르다.
  • 주어지는 값은 모두 정수이다.

예제5

  1. 예제 1

    입력
    4 3 4
    00
    00
    00
    00
    100
    001
    000
    1 1 1 1
    2
    1 1
    3 3
    2
    3 1
    1 2
    2
    2 3
    3 3
    2
    4 2
    3 2
    
    예상 출력
    1
    3
    0
    -1
    
  2. 예제 2

    입력
    4 4 4
    100
    110
    011
    010
    0010
    1001
    0101
    1 1 1 1
    2
    1 2
    3 1
    2
    1 4
    4 1
    2
    3 2
    1 2
    2
    4 3
    1 1
    
    예상 출력
    1
    3
    2
    2
    
  3. 예제 3

    입력
    7 3 3
    10
    00
    00
    10
    00
    01
    00
    110
    101
    011
    001
    110
    100
    1 1 1 1 1 1 1
    3
    7 2
    3 1
    3 2
    3
    3 1
    6 3
    2 3
    7
    2 2
    1 3
    7 3
    5 2
    1 2
    7 2
    3 1
    
    예상 출력
    3
    2
    4
    
  4. 예제 4

    입력
    4 3 3
    00
    00
    10
    00
    110
    011
    001
    1 2 2 2
    2
    1 1
    3 1
    2
    4 3
    2 1
    2
    4 1
    1 3
    
    예상 출력
    1
    2
    5
    
  5. 예제 5

    입력
    7 3 2
    01
    00
    00
    00
    00
    10
    01
    100
    110
    011
    001
    101
    001
    1 1 2 1 1 2 2
    3
    7 2
    1 3
    5 1
    5
    1 1
    2 2
    3 1
    2 3
    4 2
    
    예상 출력
    4
    1