아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

왕국 여행

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

요약
각 칸에서 정해진 직사각형 범위로 이동할 수 있을 때 연속된 목표 칸 사이의 최소 대여 비용을 구합니다.
난이도

어려움10점 중 8점

유형
최단 경로, 세그먼트 트리
정답자
아직 제출이 없습니다

문제

콰드라도니아 왕국은 RR개의 행과 CC개의 열로 이루어진 격자로 나뉘어 있고, 칸 하나가 주 하나다. 길이 위험해서 혼자 다니는 사람은 없다. 이동은 모두 호위 마차로 하고, 마차는 주간통신여행회사(ICPC)가 운영한다.

요금 체계는 이렇다. ii행 jj열의 주에서는 비용 VijV_{ij}를 내고 마차를 빌린다. 이 마차는 ii행에서 최대 RijR_{ij}행, jj열에서 최대 CijC_{ij}열 떨어진 주까지 데려다준다. 즉 ∣i−i′∣≤Rij|i - i'| \le R_{ij}이고 ∣j−j′∣≤Cij|j - j'| \le C_{ij}인 i′i'행 j′j'열의 주에 내릴 수 있다. 요금은 정액이라서 내리는 곳과 무관하고 빌리는 주에서만 정해진다.

당신은 주 NN개 p1,p2,…,pNp_1, p_2, \dots, p_N을 이 순서대로 방문하려고 한다. 예산이 빠듯하니 각 구간을 가장 싸게 가는 방법을 알고 싶다. 한 구간에서 중간에 거치는 주의 수에는 제한이 없고, 마차를 빌리는 주마다 그 주의 요금을 낸다.

입력

첫째 줄에 정수 RR, CC, NN이 주어진다 (1≤R,C≤5001 \le R, C \le 500, 2≤N≤52 \le N \le 5). 각각 행의 수, 열의 수, 방문할 주의 수다. 행에는 1번부터 RR번까지, 열에는 1번부터 CC번까지 번호가 붙어 있다.

다음 3×R3 \times R개의 줄은 RR줄씩 세 묶음으로 나뉘고, 각 줄에는 정수가 CC개씩 있다. 첫 묶음의 ii번째 줄에서 jj번째 수는 VijV_{ij}다 (1≤Vij≤10001 \le V_{ij} \le 1000). 둘째 묶음은 같은 배치로 RijR_{ij}를 (0≤Rij≤R0 \le R_{ij} \le R), 셋째 묶음은 CijC_{ij}를 준다 (0≤Cij≤C0 \le C_{ij} \le C).

마지막 NN개의 줄은 방문 순서대로 p1,p2,…,pNp_1, p_2, \dots, p_N을 나타낸다. kk번째 줄에는 정수 IkI_k와 JkJ_k가 있고 (1≤Ik≤R1 \le I_k \le R, 1≤Jk≤C1 \le J_k \le C), pkp_k가 IkI_k행 JkJ_k열의 주라는 뜻이다.

출력

한 줄에 정수 N−1N - 1개를 공백 하나로 구분해 출력한다. k=1,2,…,N−1k = 1, 2, \dots, N - 1에 대해 kk번째 수는 호위 마차로 pkp_k에서 pk+1p_{k+1}까지 가는 최소 요금 합이고, 그 구간을 갈 수 없으면 −1-1이다. pkp_k와 pk+1p_{k+1}이 같은 주면 요금은 0이다.

예제2

  1. 예제 1

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

    입력
    1 5 3
    9 1 1 1 1
    0 0 0 0 0
    4 1 1 1 1
    1 1
    1 5
    1 1
    
    예상 출력
    9 4