CF821D.Okabe and City

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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 11 to nn from top to bottom, and columns are numbered 11 to mm from left to right. Exactly kk 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 11 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!

输入格式

The first line of input contains three space-separated integers nn , mm , and kk ( 2<=n,m,k<=1042<=n,m,k<=10^{4} ).

Each of the next kk lines contains two space-separated integers rir_{i} and cic_{i} ( 1<=ri<=n1<=r_{i}<=n , 1<=ci<=m1<=c_{i}<=m ) — the row and the column of the ii -th lit cell.

It is guaranteed that all kk lit cells are distinct. It is guaranteed that the top-left cell is lit.

输出格式

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

输入输出样例

  • 输入#1

    4 4 5
    1 1
    2 1
    2 3
    3 3
    4 3
    

    输出#1

    2
    
  • 输入#2

    5 5 4
    1 1
    2 1
    3 1
    3 2
    

    输出#2

    -1
    
  • 输入#3

    2 2 4
    1 1
    1 2
    2 1
    2 2
    

    输出#3

    0
    
  • 输入#4

    5 5 4
    1 1
    2 2
    3 3
    4 4
    

    输出#4

    3
    

说明/提示

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

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

首页