朋友与草药
时间限制:1秒 内存限制:256M
【题目描述】
森林被划分成了划分成了 \(M×N\) 块区域,有些区域是不可通行的沼泽地,有些区域是可以通行的空地,还有些区域生长着一种草药,也可以通行。
小H从当前所在的区域出发去拜访朋友小Z,他每个单位时间可走到上下左右相邻的区域。但到达小Z所在区域之前,小H必须先寻找一棵草药带给他,所以在找到草药之前小H不能到小Z所在的区域。
那么,小H最少要多少时间才能见到小Z?
【输入格式】
第一行是整数 \(M\) 和 \(N\)。
接下M行,每行包含N个数字,其中数字0表示可以通行的区域,数字1表示不可通行的区域,数字2表示小H所在位置,数字3表示小Z的位置,数字4代表有草药的区域(可能有多个)。
【输出格式】
输出一个正整数,表示小H需要的最少时间。
【输入输出样例】
Input
8 4
4 1 0 0 0 0 1 0
0 0 0 1 0 1 0 0
0 2 1 1 3 0 4 0
0 0 0 4 1 1 1 0
Output
11
【数据限制】
对于 \(100\%\) 的数据,\(1≤M,N≤1000\)。
【来源】
Mr.he