问题 4786 --4. 蚂蚁 (ant)

4786: 4. 蚂蚁 (ant)

题目描述

  蚂蚁在回家路上,他的任务自然是回家。蚂蚁在一个 w*h个方格的地图上。每 秒钟他能向上下左右四个方向移动一格,但不能离开地图。由于蚂蚁体能有限,每 秒钟他要消耗 1点 HP, 刚开始时他有满 HP6点。他可以沿路通过进食来补满 HP(即 6 点),只要他走到有食物的格子,他不需要任何时间即可进食完毕。一个格子上的 食物量对于小蚂蚁来说是庞大的,只要他愿意,每次经过这个格子都有吃不完的食 物。
 一旦蚂蚁的 HP降到 0,他将死去,就算到了某个有食物的格子才死去, 他也不 能通过进食补满 HP。即使再家门口死去,他也不能算完成任务回到家中。

地图上有 5 种格子: 
数字 0:表示障碍物,蚂蚁不能走到这个格子上,更不能跨越。
数字 1:表示空地,蚂蚁可以自由行走
数字 2:表示蚂蚁出发点,他也是一片空地。
数字 3:表示蚂蚁的家。
数字 4:表示有食物在上面的空地。
你能告诉蚂蚁先生他能否安全回家,如果能,最短需要多长时间呢?

输入

第一行,表示宽 w和长 h。
下面 h 行,每行 w个数字来描述地图。

输出

一行,若蚂蚁不能回家,输出 -1, 否则输出蚂蚁回家所需最短时间。 

样例输入输出

输入#1 复制
3 3
2 1 1
1 1 0
1 1 3
输出#1 复制
4

提示

【数据规模】
0<w,h<9

序号 标题 作者 发表时间 费用 订购数 操作