问题 W: 探险家小F

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

题目描述

世界非著名探险家Floatiy经常访问一些遗迹,某一天他在一个丛林洞穴中发现了一座祭坛,在启动祭坛后他被传送到了一个迷宫中。短暂的思考后小F决定尽快逃离迷宫。
观察周围环境后,小F发现迷宫是由若干相邻的正方体格子组成的3维空间,每个格子可能为空或者砖块。空格子可以自由通过,砖块则无法穿过。已知小F初始所在的位置和出口所在的位置,小F走到出口即视为逃离成功。现给出迷宫的地图,请算出他是否能够逃离,若能逃离,还需算出他逃离所用的最小时间。


小F有以下几种行动方式:

1.移动&下落

脚下有砖块时,小F可以进行移动。每1秒钟小F可以移动到前后左右任意方向的一个相邻空格子中,若移动到一个格子后下方没有砖块则会发生下落。下落时小F无法进行任何行动,直到脚下有砖块下落才会停止。为简化问题,我们规定无论下落多少距离,下落时间都为1s。

2.跳跃

在脚下有砖块时,小F可以花费1s进行一次高度小于等于三格的跳跃。跳起后,若脚下格子的四周有砖块,则可以再花费1s移动到脚下格子旁边的砖块的上方。否则他将会下落,坠回起跳的位置。
现给定迷宫的部分地图(迷宫除了给定地图的部分其他格子均为砖块)求小F逃脱的所需的最短时间,若无法逃脱则输出"GG"。

输入

第一行1个正整数T,表示有T组数据需要处理。
每组数据的第一行包含三个正整数x,y,z,分别表示迷宫的长宽高。
之后自下而上地给出每一层的地图,共z个y行,每行包含x个字符,中间用空格隔开。
1表示方块,0表示空格子,2表示初始时小F所在的格子,3表示出口所在的格子。

输出

输出共T行,每一行若可以逃脱则输出逃脱所需的最短时间,否则输出“GG”。

样例输入 复制

1
3 3 4 
2 1 0 
0 0 0 
1 1 0 
1 1 1 
1 1 1 
1 1 0 
3 1 1 
1 1 1 
1 1 0 
0 0 0 
0 1 1 
0 0 0 

样例输出 复制

10

提示

样例解释:



每段红线所需的时间都是1s,共10s。
此样例中进行了一次跳跃和一次下落。

数据范围:

x,y,z为不超过50的正整数。
T为不超过10的正整数。

来源/分类