Road Service 2
시간 제한3초메모리 제한1024 MB
격자 모양 도로망에서 동서 도로마다 1일 또는 2일이 드는 보수를 골라, 각 질의의 교차점들을 모두 연결하는 최소 보수 기간을 구합니다.
문제
JOI 시에는 무한히 긴 동서 방향 도로 개와 무한히 긴 남북 방향 도로 개로 이루어진 격자 모양의 도로망이 있다. 교차점 (, )는 북쪽에서 번째 동서 도로와 서쪽에서 번째 남북 도로가 만나는 지점이다.
도로 상태가 좋지 않아 일부 도로는 막혀 있다.
- 북쪽에서 번째 동서 도로에서 교차점 와 을 잇는 구간 ()은 이면 막혀 있고, 이면 통행할 수 있다.
- 서쪽에서 번째 남북 도로에서 교차점 와 를 잇는 구간 ()은 이면 막혀 있고, 이면 통행할 수 있다.
- 나머지 도로 구간 (격자 교차점 바깥 부분)은 모두 막혀 있다.
JOI 시장 K는 도로망의 보수 계획을 세우고 있다. 보수 계획은 0회 이상의 보수로 이루어진다. 보수는 를 만족하는 정수 를 골라 다음을 수행하는 것이다.
모든 정수 ()에 대해, 북쪽에서 번째 동서 도로의 교차점 와 을 잇는 구간이 막혀 있으면 통행할 수 있게 만든다.
보수 하나에는 일이 걸린다. 는 또는 이다. 보수는 동시에 진행할 수 없으므로, 보수 계획의 기간은 계획에 포함된 보수들에 걸린 날짜의 합이다.
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
각 는 다음 형식이다.
T_k
X_{k,1} Y_{k,1}
X_{k,2} Y_{k,2}
...
X_{k,T_k} Y_{k,T_k}
출력
개의 줄을 출력한다. 번째 줄에는 개의 교차점을 서로 도달 가능하게 만드는 보수 계획 기간의 최솟값을 출력한다. 그런 계획이 없으면 을 출력한다.
제한
- , , .
- , .
- 모든 에 대해 .
- 각 와 는 또는 이다.
- 각 는 또는 이다.
- , .
- 각 질문의 개 교차점은 서로 다르다.
- 주어지는 값은 모두 정수이다.