题号:NC25160
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld
题目描述
Farmer John为了满足奶牛对美的享受而安装了人工湖。矩形的人工湖分成

行

列
)
的方形小格子。有些格子是荷叶,有些
是岩石,剩下的格子有的只是美丽的蓝色湖水。
Bessie通过从一片荷叶跳到另一片荷叶上来练习芭蕾。它现在正站在一片荷叶上(看输入数据了解具体位置)。它希望通过在荷叶上跳跃来到达另一片荷叶。它既不能跳到水里也不能跳到岩石上。
Bessie的跳跃有点类似象棋中马那样的移动,在一个方向上移动
)
格,然后再在斜方向上移动
)
格(或者是在一个方向上移动

格,然后在斜方向上移动

格)。Bessie再一个荷叶最多可能有多达8种的跳跃选择。
给出池塘的构造以及Bessie跳跃的形式,找出Bessie从
起点荷叶跳到终点荷叶所需的最小的跳跃次数。数据保证有解。
输入描述:
第1行: 四个空格分开的整数: M, N, M1, 和 M2
第2行至 M+1行: 第i+1行用N个空格分开的整数描述池塘第i行,0表示水,1表示 荷叶,2表示岩石,3表示Bessie现在站的那块荷叶,4表示跳跃的终点。
输出描述:
输出 一个整数,是Bessie从起点荷叶跳到终点荷叶所需的最小的跳跃数。
示例1
输入
复制
4 5 1 2
1 0 1 0 1
3 0 2 0 4
0 1 2 0 0
0 0 0 1 0
说明
Bessie在第二行的左边开始;她的目的地在第二行的右边。池塘中有几块荷叶和岩石。
Bessie聪明的跳到了(1,3)的荷叶上,再跳到目的地。