问题2344--zbc下象棋

2344: zbc下象棋

[命题人 : ]
时间限制 : 1 sec  内存限制 : 128 MB

提交

题目描述

zbc的业余爱好就是下象棋,他不仅会下中国象棋,还会下国际象棋。他发现中国象棋和国际象棋虽然都有"马"这个棋子,但走的规则却不太一样。  
国际象棋的"马"可以走"日"字,也就是说每一步只可以水平或垂直移动一点,再按对角线方面向左或者右移动(另一种解释,可以先在水平/竖直方向走两格,然后在竖直/水平方向走一格)。另外,马不允许跳出界外,也即必须跳完一步之后仍在棋盘上。如图所示:  
  
中国象棋的"马"的走法也是走日字,在没有障碍物的情况下,其走法与国际象棋一样。唯一不同的是,如果马走了一格就遇到障碍物,马就不能继续向这个方向前进了(又称为"马脚")。如图所示,左上角的马因为没有障碍物,可以走八个方向,而右下角的马由于正上方有一个其他棋子,因此就不能往上方的两个方向跳了。  

  
zbc想比较一下两种马的差异,他找来了一个n行m列的大棋盘,行和列都从1开始编号。这个棋盘上已经有若干个其他棋子,马在行进的过程中不能走到这些有棋子的格子上。为了方便比较起见,假定所有棋子都在格子内部(本来中国象棋的子是放在交线上的)。zbc先在a行b列放上国际象棋的马,算了一下它到c行d列最快要几步;又在同样的a行b列放上中国象棋的马,算了一下它到c行d列最快要几步。显然,这么手工计算很容易出错,因此zbc想请你帮忙用程序算一下。

输入

第一行包含7个数n,m,k,a,b,c,d,分别表示棋盘的行数,棋盘的列数,其他棋子的个数,起点坐标(a,b)和终点坐标(c,d)。  
第二行有2k个数,每两个数代表一个其他棋子所在的坐标。数据保证不会有多个其他棋子在一个格子中,也保证(a,b)和(c,d)不会有其他棋子。
1<=n,m,k,a,b,c,d<=300

输出

输出一行两个数,分别是国际象棋的马和中国象棋的马从起点坐标到终点坐标最少需要走几步。若不可能到达,则输出-1。

样例输入 Copy

10 10 1 5 5 5 5
1 1

样例输出 Copy

0 0

提示

输入2:
2 3 1 1 1 2 3
1 2
输出2:
1 -1

来源/分类