만드는 중입니다

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

최단 경로 질의

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

요약
W×H 격자의 각 칸 비용으로 Q개의 칸 쌍마다 인접한 칸으로만 이동하는 최소 비용 경로의 합을 구합니다.
난이도

보통10점 중 7점

유형
분할 정복, 동적 계획법, 행렬
정답자
아직 제출이 없습니다

문제

W×HW \times H 크기의 격자가 주어진다. 각 칸에는 정수가 하나씩 적혀 있다. 왼쪽 위 칸을 (1,1)(1, 1), 오른쪽 아래 칸을 (W,H)(W, H)라고 한다.

칸 SS에서 칸 TT까지의 경로는 칸들의 나열이다. 첫 번째 칸은 SS, 마지막 칸은 TT이고, 연속한 두 칸은 변을 공유한다. 경로의 비용은 경로에 포함된 모든 칸의 값의 합이다.

격자에 적힌 정수와 QQ개의 칸 쌍 (SXi,SYi)(SX_i, SY_i), (TXi,TYi)(TX_i, TY_i)가 주어진다. 각 쌍에 대해 칸 (SXi,SYi)(SX_i, SY_i)에서 칸 (TXi,TYi)(TX_i, TY_i)까지 가는 경로의 최소 비용을 구한다.

입력

첫 줄에 세 정수 WW, HH, QQ가 주어진다 (1≤W≤101 \le W \le 10, 2≤H≤1042 \le H \le 10^4, 1≤Q≤1051 \le Q \le 10^5).

다음 HH개의 줄은 격자를 나타낸다. 그중 yy번째 줄의 xx번째 수 Ax,yA_{x,y}는 칸 (x,y)(x, y)에 적힌 정수이다 (0≤Ax,y≤1090 \le A_{x,y} \le 10^9).

다음 QQ개의 줄에는 칸 쌍 (SXi,SYi)(SX_i, SY_i), (TXi,TYi)(TX_i, TY_i)가 한 쌍씩 주어진다 (1≤SXi,TXi≤W1 \le SX_i, TX_i \le W, 1≤SYi,TYi≤H1 \le SY_i, TY_i \le H, (SXi,SYi)≠(TXi,TYi)(SX_i, SY_i) \ne (TX_i, TY_i)).

출력

QQ개의 줄을 출력한다. ii번째 줄에는 칸 쌍 (SXi,SYi)(SX_i, SY_i)와 (TXi,TYi)(TX_i, TY_i)에 대한 최소 비용을 출력한다.

예제2

  1. 예제 1

    입력
    2 5 4
    0 1
    0 1
    0 0
    1 0
    1 0
    1 1 2 5
    2 1 1 5
    1 3 2 3
    1 5 1 1
    
    예상 출력
    0
    2
    0
    1
    
  2. 예제 2

    입력
    3 6 5
    1 9 2
    3 4 1
    2 5 3
    4 2 2
    3 1 5
    2 6 3
    1 1 3 1
    1 1 3 6
    1 6 3 6
    1 3 3 4
    2 6 3 2
    
    예상 출력
    11
    21
    11
    10
    15