1720: 宝物与迷宫

内存限制:128 MB 时间限制:2.000 S
评测方式:文本比较 命题人:
提交:28 解决:19

题目描述

小m最近在玩一个游戏,游戏充满了大量的迷宫,很多宝物包括通关用的重要道具都在迷宫里面。小m在迷宫里面只能朝上下左右移动,并且他靠着现代的科技,已经找到了迷宫的地图,但是迷宫里面还是有怪的,和怪物打起来会很浪费时间,所以他想走尽可能少的路的去找到宝物再原路返回

由于迷宫确实太多了,如果那个迷宫不是必要道具所在的地方并且路程过远的话,他就直接不去了。

现在他把地图交给了你,请你跟他说一下他在迷宫中所走的路径总长是多少吧!

输入

第一行一个T,代表一共有T个迷宫1 <= T  <= 100

每个迷宫第一行输入一个n,m,k,R,代表迷宫的长度和宽度还有是否有必要去,k1代表必须要去,0则代表非必要去,R代表预期的路径长度。(n,m,R <= 500)

接下来n行m列代表迷宫的布局。其中X代表墙壁,O代表可以用过,G代表宝物所在地,@代表出发点。

输出

输出一个整数,代表所走的路径总长。

样例输入 复制

3 
3 3 1 3
X X G 
O O O
@ X X
4 4 0 3
X X G O
O X O O
@ X X O
O O O O
2 2 0 3
X G
@ O

样例输出 复制

12

提示

第一个迷宫是必要去的迷宫,最短长度为4,来回长度是8。

第二个迷宫是非必要去的迷宫,最短路径长度为8,超过了预期长度R,所以不去这个迷宫。

第三个迷宫是非必要去的迷宫,最短路长度为2,没超过预期长度R,所以选择去拿这个宝物,来回长度是4。

所以总长度是8+0+4 = 12。