守门骑士
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
贝西在卡梅洛特遇到了一个棘手的情况:她需要穿过由Ni骑士守卫的森林。为了安全通过,骑士们要求她带一丛灌木过来。时间宝贵,贝茜必须尽快找到并给他们带来一片灌木丛。
贝西有一张森林的地图,它被分割成一个正方形的网格,以通常的方式排列,轴平行于X和Y轴。地图的大小是H × W单位(1 <= W <= 100;1 <= H <= 100)。
地图显示了贝西开始探索的地方,骑士所在的方格,以及这片土地上所有灌木丛的位置。它还显示了地图上哪些区域可以通过(注:因为沼泽、悬崖和兔子杀手,有些网格块是无法通过的)。没有灌木,贝西无法穿过骑士所在的位置。
为了确保她能正确地跟随地图,贝西只能向四个方向移动:上、下、左或右(也就是说,不能对角移动)。她需要一天的时间来完成从一个网格块到邻近网格块的遍历。
如果贝西能弄到一棵灌木,然后交给Ni的骑士。输出最快的天数。否则输出-1.
输入格式
第一行两个整数H和W
接下来H行,每行W个数字空格隔开,每个数字只可能是0,1,2,3,4中的一个
0:贝西可以穿过的格子
1:贝茜无法穿越的格子
2:贝西的起始位置
3:骑士的位置
4:灌木丛的位置
输出格式
一个整数,贝西把灌木交给骑士的最快天数或者-1。
4 8
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
11