#607. 传送门

传送门

传送门

题目描述

在一个矩阵王国里有两个矮人种族,一个叫铜须部族,一个叫黑铁部族。他们住在一个N×MN\times M的矩阵方格中的不同位置,铜须矮人住在矩阵方格的左上角(1,1),黑铁矮人住在矩阵方格的右下角方格里(N,M)。

在这个矩阵方格例还有一对可传送的门,这对传送门的位置不固定,位置可变换(传送门不会出现在矩阵方格左上角和右下角位置,也不会重叠出现,有且只有一对)。传送门的功能是当进去其中一扇门的位置后可直接传送到另一扇门的位置。如下图所示:

image

一天铜须矮人要去黑铁矮人家做客,需要穿过方格矩阵到达黑铁矮人家,穿行矩阵方格要求:

  • 1.每次只能走一个方格,可以向上、向下、向左、向右行走;
  • 2.每走一个方格记为一步,但从一扇门传送到另一扇门传送门不记步数(从方格走到传送门和从传送门到其他方格都计1步);
  • 3.可借助传送门去黑铁矮人家(可减少行走步数)。

为了尽快到达黑铁矮人家,请你帮助铜须矮人找一条最短路线,并且计算出最短路线的步数。

例如上图中给出一个3*4的矩阵方格,并给出第一个传送门的坐标位置N1,M1(2,3),第二个传送门的坐标位置N2,M2(3,1),已知铜须矮人初始坐标位置左上角(1,1),黑铁矮人坐标位置右下角(N,M)。按照穿行矩阵方格要求为左上角方格的铜须矮人到右下角方格黑铁矮人家找一条最短路线,计算出最短路线的步数:

路线:从铜须矮人初始位置(1,1)到正下方方格(2,1)走1步,正下方方格(2,1)到其下方传送门(3,1)走1步,然后传送到另一扇传送门(2,3)向正下方(3,3)走1步,最后到达黑铁矮人家(3,4)需要走1步,故最短路线需要4步。

输入格式

第一行输入两个以一个空格隔开的正整数NN2<N<1012<N<101),MM2<M<1012<M<101),分别表示NNMM列的方格矩阵;

接下来第二行输入两个以一个空格隔开的正整数:N1N1N1<=NN1<=N),M1M1M1<=MM1<=M),代表第一个传送门位于第N1N1行第M1M1列;

接下来第三行输入两个以一个空格隔开的正整数:N2N2N2<=NN2<=N),M2M2M2<=MM2<=M),代表第二个传送门位于第N2N2行第M2M2列;

注意:两个传送门位置不能重叠,即不能同时满足N1=N2N1=N2M1=M2M1=M2;两个传送门位置也不能位于左上角(1,1)和右下角(M,N)。

输出格式

输出一个整数,表示铜须矮人去黑铁矮人家最短路线需要走多少步(可借助传送门,减少步数)。

输入样例

3 4
2 3
3 1

输出样例

4
}