2418: 鼠鼠想回家
[Creator : ]
Description
小老鼠想回家,它现在在一个 n × m个方格的矩形封锁线上。每次它能向上下左右四个方向移动一格(不可以静止不动), 并且不能离开封锁线,否则就会死亡。 开始时它有 6 滴血,每移动一格他要消耗 1 滴血量。一旦小老鼠的血量降到 0, 它将死去。 它可以沿路通过拾取奶酪来补满血量,吃到一个奶酪即可回满血量。走一格花费一单元时间,每次经过这个格子都有奶酪。就算到了某个有奶酪的格子才死去, 它也不能通过拾取奶酪补满 HP,即剩余一滴血时,它任意移动将会死去。 即使在家门口死去, 它也不能算完成任务回到家中。
地图上有五种格子:
0:路障。
1:空地, 小老鼠可以自由行走。
2:小老鼠出发点, 也是一片空地。
3:小老鼠 的家。
4:有奶酪在上面的空地。
老鼠能否安全回家?如果能, 最短需要多长时间呢?
Input
第一行两个整数 n,m, 表示地图的大小为n×m。
下面 n 行, 每行 m 个数字来描述地图。
对于所有数据,1≤n,m≤9。
下面 n 行, 每行 m 个数字来描述地图。
对于所有数据,1≤n,m≤9。
Output
一行, 若小老鼠不能回家, 输出 -1,否则输出他回家所需最短时间。
Sample Input Copy
3 3
2 1 1
1 1 0
1 1 3
Sample Output Copy
4