#joi2013ho3. [joi2013ho3]現代的な屋敷 (Modern Mansion)

[joi2013ho3]現代的な屋敷 (Modern Mansion)

将以下文本翻译成中文,要求显示为markdown格式,不要渲染:

您走进了一座大宅邸。这座大宅的结构由东西南北方向的正方形房间以网格状排列组成,东西方向有 MM 列,南北方向有 NN 行,总共有 MtimesNM \\times N 个房间。位于西侧的第 xx 列 (1leqqxleqqM1 \\leqq x \\leqq M),南侧的第 yy 行 (1leqqyleqqN1 \\leqq y \\leqq N) 的房间用 (x,y)(x, y) 表示。

相邻的东西南北房间之间通过位于墙壁中央的门相连。每个门可以处于关闭和不可通行状态,或者打开和可通行状态之一。当门打开时,从一个房间的中心到另一个房间的中心需要花费 1 分钟。此外,一些房间的中心有开关,如果持续按压开关 1 分钟,则会切换所有门的开闭状态。

现在,东西方向相邻的房间之间的所有门都是关闭状态,南北方向相邻的房间之间的所有门都是打开状态。你现在位于房间 (1,1)(1, 1) 的中心,希望以最短时间移动到房间 (M,N)(M, N) 的中心。

任务

给定宅邸的大小 M,NM, NKK 个房间的位置 (X1,Y1),(X2,Y2),ldots,(XK,YK)(X_1, Y_1), (X_2, Y_2), \\ldots, (X_K, Y_K),从所有东西方向相邻的房间之间的门为关闭状态,南北方向相邻的房间之间的门为打开状态开始,编写程序计算从房间 (1,1)(1, 1) 的中心移动到房间 (M,N)(M, N) 的中心所需的最短时间。如果无法到达房间 (M,N)(M, N),则指出这一点。

限制

2leqqMleqq100,0002 \\leqq M \\leqq 100\\,000

宅邸在东西方向上的房间数量

2leqqNleqq100,0002 \\leqq N \\leqq 100\\,000

宅邸在南北方向上的房间数量

1leqqKleqq200,0001 \\leqq K \\leqq 200\\,000

拥有开关的房间数量

1leqqXileqqM1 \\leqq X_i \\leqq M

开关所在房间的东西位置

1leqqYileqqN1 \\leqq Y_i \\leqq N

开关所在房间的南北位置


输入

从标准输入中读取以下数据:

  • 第一行包含整数 M,N,KM, N, K,以空格分隔。MM 表示宅邸在东西方向上的房间数量,NN 表示宅邸在南北方向上的房间数量,KK 表示拥有开关的房间数量。
  • 接下来的 KK 行中的第 ii 行 (1leqqileqqK1 \\leqq i \\leqq K) 包含整数 Xi,YiX_i, Y_i,以空格分隔。表示房间 (Xi,Yi)(X_i, Y_i) 的中心有一个开关。KK 对组 (X1,Y1),(X2,Y2),ldots,(XK,YK)(X_1, Y_1), (X_2, Y_2), \\ldots, (X_K, Y_K) 互不相同。

输出

将移动所需的最短时间作为整数输出到标准输出的一行。如果无法到达房间 (M,N)(M, N),则输出整数 \-1\-1

评分标准

对于评分数据的 2020 %,满足条件 Mleqq1,000M \\leqq 1\\,000Nleqq1,000N \\leqq 1\\,000

对于评分数据的 3030 %,满足条件 Kleqq2,000K \\leqq 2\\,000

对于评分数据的 5050 %,满足这两个条件之一即可。同时满足这两个条件的评分数据不存在。


输入例子 1

3 2 1
1 2

输出例子 1

4

在这个例子中,你可以通过以下步骤在 4 分钟内从房间 (1,1)(1, 1) 的中心移动到房间 (3,2)(3, 2) 的中心,这是最短路径:

  • 移动到房间 (1,2)(1, 2) 的中心。
  • 按下房间 (1,2)(1, 2) 的中心的开关。
  • 移动到房间 (2,2)(2, 2) 的中心。
  • 移动到房间 (3,2)(3, 2) 的中心。

下图显示了此时宅邸的情况。图中,右方向为东,上方向为北,×号表示你的位置,○号表示开关。

088a24305fc2470b9ff17a0cd60c556b.png


输入例子 2

3 2 1
2 1

输出例子 2

-1

在这个例子中,你无法到达房间 (3,2)(3, 2)


输入例子 3

8 9 15
3 1
3 2
3 7
3 8
1 1
4 5
4 3
5 6
5 8
6 3
6 2
7 5
8 9
8 6
8 5

输出例子 3

25

在这个例子中,初始时宅邸的情况如下图所示。注意,房间 (1,1)(1, 1) 和房间 (M,N)(M, N) 的中心也可能会有开关。

128c91a07269803fa720723600260cea.png