배관공과 사나운 개

홀수 행과 열에만 집이 있는 격자에서 각 집을 한 번씩 지나는 하강 경로들로 덮되, 개가 있는 칸을 지나는 파이프 비용을 최소화하고 경로 수를 K 이하로 제한하는 문제.

어려움9동적 계획법그리디그래프최단 경로아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

당신은 ICPC(International Community for Pipe Connection)의 자랑스러운 배관공이고, 새 작업을 맡았다. 담당 구역은 동서로 WW칸, 남북으로 HH칸인 직사각형이다. 서쪽에서 ii번째, 북쪽에서 jj번째 칸을 (i,j)(i, j)라고 부른다. 가장 서쪽이면서 가장 북쪽인 칸은 (1,1)(1, 1)이고, 가장 동쪽이면서 가장 남쪽인 칸은 (W,H)(W, H)이다. 경관을 위해 칸 (i,j)(i, j)에는 iijj가 모두 홀수일 때, 그리고 그때만 집이 정확히 하나 있다.

당신의 작업은 구역의 모든 집이 물을 공급받도록 수도관망을 건설하는 것이다. 수도관망은 여러 파이프라인으로 이루어진다. 파이프라인은 하나 이상의 관을 이어서 만들며, 관 ll개로 이루어진 파이프라인은 다음과 같이 건설한다.

  1. 첫 번째 집을 고르고, 그 집을 특수관으로 지하 수원과 연결한다.
  2. ii(2il2 \le i \le l)에 대해 ii번째 집을 고르고, 그 집을 일반관으로 (i1)(i-1)번째 집과 연결한다. 구역이 경사지이므로 다음 집을 고르는 데에는 조건이 있다. (i1)(i-1)번째 집의 칸을 (x,y)(x, y)라 하면 ii번째 집은 (x2,y+2)(x-2, y+2), (x,y+2)(x, y+2), (x+2,y+2)(x+2, y+2) 중 하나에 있어야 하고, 두 집을 잇는 일반관은 각각 (x1,y+1)(x-1, y+1), (x,y+1)(x, y+1), (x+1,y+1)(x+1, y+1)에 놓인다.

파이프라인을 여러 개 건설할 때는 다음 규칙도 지켜야 한다.

  • 각 집을 지나는 파이프라인은 정확히 하나다.
  • 한 칸에 관을 여러 개 놓을 수 있다.

일반관은 흔하므로 개수 제한 없이 사용할 수 있다. 특수관은 특별하므로 ICPC 규정에 따라 이 작업에서 사용할 수 있는 개수가 제한된다.

특수관 개수 제한 말고도 작업을 방해하는 요소가 하나 더 있다. 바로 사나운 개다. 집이 없는 칸 중 일부는 사나운 개의 집이다. 각 개는 항상 자기 집 칸에 머무른다. 여러 마리가 한 칸을 집으로 쓰는 일은 없으므로, 각 칸에 사는 개는 많아야 한 마리다.

아래 그림은 5×55 \times 5 구역에 특수관 4개로 건설한 수도관망의 예이며, 첫 번째 예제에 해당한다.

개가 없는 칸에 일반관을 하나 놓는 데는 1단위 시간이 걸린다. 개가 사는 칸에 일반관을 하나 놓는 데는 사나운 개와 싸워야 하므로 2단위 시간이 걸린다. 한 칸에 관을 여러 개 놓을 때도 관 하나마다 개가 없는 칸이면 1단위, 개가 사는 칸이면 2단위 시간이 든다. 특수관은 아주 특별해서 놓는 데 0단위 시간이 든다.

당신은 이 작업을 최대한 빨리 끝내고 싶다. 다행히 개가 사는 칸의 목록이 있다. 허용된 개수의 특수관만으로 모든 집에 물을 공급하는 수도관망을 건설할 수 있는지 판정하고, 가능하다면 건설에 드는 최소 총 시간을 구하는 프로그램을 작성하시오.

입력

입력은 테스트 케이스 하나로 이루어지며 형식은 다음과 같다.

W H K
N
x1 y1
...
xN yN

모든 수는 정수다. 첫째 줄에 WW, HH, KK가 주어진다. WW는 동서 방향 칸 수(1W<100001 \le W < 10000), HH는 남북 방향 칸 수(1H<100001 \le H < 10000)이며, WWHH는 모두 홀수다. KK는 이 작업에서 사용할 수 있는 특수관의 개수다(1K1000000001 \le K \le 100000000). 둘째 줄에 구역에 있는 개의 수 NN(0N1000000 \le N \le 100000)이 주어진다. 이어지는 NN개 줄에는 각각 정수 xix_iyiy_i가 주어지며, ii번째 개의 집이 칸 (xi,yi)(x_i, y_i)라는 뜻이다. 이 값들은 다음 조건을 만족한다.

  • 1xiW1 \le x_i \le W, 1yiH1 \le y_i \le H.
  • xix_iyiy_i 중 적어도 하나는 짝수다.
  • iji \ne j이면 (xi,yi)(xj,yj)(x_i, y_i) \ne (x_j, y_j)이다. 즉, 같은 칸에 사는 개는 둘 이상 없다.

출력

특수관을 최대 KK개만 사용해 모든 집에 물을 공급하는 수도관망을 건설할 수 있으면 건설에 드는 최소 총 시간을 출력한다. 불가능하면 -1을 출력한다.