最少转弯问题

成绩 0 开启时间 2013年02月21日 星期四 18:02
折扣 0.8 折扣时间 2013年02月28日 星期四 18:02
允许迟交 关闭时间 2013年02月28日 星期四 18:02
输入文件 turn.in 输出文件 turn.out

给出一张地图,这张地图被分为n×m(n,m<=100)个方块,任何一个方块不是平地就是高山。平地可以通过,高山则不能。现在你处在地图的(x1,y1)这块平地,问:你至少需要拐几个弯才能到达目的地(x2,y2)?你只能沿着水平和垂直方向的平地上行进,拐弯次数就等于行进方向的改变(从水平到垂直或从垂直到水平)的次数。

例如:如图1,最少的拐弯次数为5。


       

输入:共三行

第一行:n   m

第2至n+1行:整个地图地形描述(0:空地;1:高山),

如(图1)第2行地形描述为:1 0 0 0 0 1 0

          第3行地形描述为:0 0 1 0 1 0 0

          ……

          最后放在同一行。

          

第n+2行:x1  y1  x2  y2  (分别为起点、终点坐标)


输出:s (即最少的拐弯次数)


输入输出样例(见图1):


turn.in

turn.out

5 7

1 0 0 0 0 1 0 

0 0 1 0 1 0 0 

0 0 0 0 1 0 1 

0 1 1 0 0 0 0 

0 0 0 0 1 1 0

1 3 1 7

5