Codeforces Round 420 (Div. 2)
D
Okabe and City
Codeforces
2200
原题
← CE →
翻译中…

Okabe likes to be able to walk through his city on a path lit by street lamps. That way, he doesn't get beaten up by schoolchildren.

翻译中…

Okabe's city is represented by a 2D grid of cells. Rows are numbered from $1$ to $*n*$ from top to bottom, and columns are numbered $1$ to $*m*$ from left to right. Exactly $*k*$ cells in the city are lit by a street lamp. It's guaranteed that the top-left cell is lit.

翻译中…

Okabe starts his walk from the top-left cell, and wants to reach the bottom-right cell. Of course, Okabe will only walk on lit cells, and he can only move to adjacent cells in the up, down, left, and right directions. However, Okabe can also temporarily light all the cells in any single row or column at a time if he pays $1$ coin, allowing him to walk through some cells not lit initially.

翻译中…

Note that Okabe can only light a single row or column at a time, and has to pay a coin every time he lights a new row or column. To change the row or column that is temporarily lit, he must stand at a cell that is lit initially. Also, once he removes his temporary light from a row or column, all cells in that row/column not initially lit are now not lit.

翻译中…

Help Okabe find the minimum number of coins he needs to pay to complete his walk!

翻译中…

Input

翻译中…

The first line of input contains three space-separated integers $*n*$, $*m*$, and $*k*$ ($2 ≤ *n*, *m*, *k* ≤ 10^{4}$).

翻译中…

Each of the next $*k*$ lines contains two space-separated integers $*r*_{*i*}$ and $*c*_{*i*}$ ($1 ≤ *r*_{*i*} ≤ *n*$, $1 ≤ *c*_{*i*} ≤ *m*$) — the row and the column of the $*i*$-th lit cell.

翻译中…

It is guaranteed that all $*k*$ lit cells are distinct. It is guaranteed that the top-left cell is lit.

翻译中…

Output

翻译中…

Print the minimum number of coins Okabe needs to pay to complete his walk, or -1 if it's not possible.

翻译中…

Note

翻译中…

In the first sample test, Okabe can take the path image, paying only when moving to $(2, 3)$ and $(4, 4)$.

翻译中…

In the fourth sample, Okabe can take the path image image, paying when moving to $(1, 2)$, $(3, 4)$, and $(5, 4)$.

翻译中…

样例

Input #1
4 4 5
1 1
2 1
2 3
3 3
4 3
Output #1
2
InputCopy OutputCopy
Input #2
5 5 4
1 1
2 1
3 1
3 2
Output #2
-1
InputCopy OutputCopy
Input #3
2 2 4
1 1
1 2
2 1
2 2
Output #3
0
InputCopy OutputCopy
Input #4
5 5 4
1 1
2 2
3 3
4 4
Output #4
3
InputCopy OutputCopy
题目信息
题号
821D
时间限制
4 s
内存限制
256 MB
标签
DFS 及类似
图论
最短路

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。