问题2418--鼠鼠想回家

2418: 鼠鼠想回家

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

提交

题目描述

小老鼠想回家,它现在在一个 n × m个方格的矩形封锁线上。每次它能向上下左右四个方向移动一格(不可以静止不动), 并且不能离开封锁线,否则就会死亡。 开始时它有 6 滴血,每移动一格他要消耗 滴血量。一旦小老鼠的血量降到 0, 它将死去。 它可以沿路通过拾取奶酪来补满血量,吃到一个奶酪即可回满血量。走一格花费一单元时间,每次经过这个格子都有奶酪。就算到了某个有奶酪的格子才死去, 它也不能通过拾取奶酪补满 HP,即剩余一滴血时,它任意移动将会死去。 即使在家门口死去, 它也不能算完成任务回到家中。

地图上有五种格子:

0:路障。

1:空地, 小老鼠可以自由行走。

2:小老鼠出发点, 也是一片空地。

3:小老鼠 的家。

4:有奶酪在上面的空地。

老鼠能否安全回家?如果能, 最短需要多长时间呢?

输入

第一行两个整数 n,m, 表示地图的大小为n×m。
下面 n 行, 每行 m 个数字来描述地图。
对于所有数据,1n,m9

输出

一行, 若小老鼠不能回家, 输出 -1,否则输出他回家所需最短时间。

样例输入 Copy

3 3
2 1 1
1 1 0
1 1 3

样例输出 Copy

4