#564. 迷宫(五)

迷宫(五)

给定一个 m×nm×n 的迷宫,迷宫中有两个位置,小明想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,小明可以穿越,有些地方是障碍,他必须绕行,从迷宫的一个位置,只能走到与它相邻的 44 个位置中,当然在行走过程中,小明不能走到迷宫外面去。令人头痛的是,小明是个没什么方向感的人,因此,他在行走过程中,不能转太多弯了,否则他会晕倒的。我们假定给定的两个位置都是空地,初始时,小明所面向的方向未定,他可以选择 4 个方向的任何一个出发,而不算成一次转弯。小明能从一个位置走到另外一个位置吗?

输入格式

11 行为一个整数 t(1t100)t (1≤t≤100),表示测试数据的个数,接下来为 tt 组测试数据。

每组测试数据第 11 行为两个整数 m,n(1m,n100)m,n(1≤m,n≤100),分别表示迷宫的行数和列数,接下来 mm 行,每行包括 nn 个字符,其中字符'.'表示该位置为空地,字符'*'表示该位置为障碍,输入数据中只有这两种字符,每组测试数据的最后一行为 55 个整数 k,x1,y1,x2,y2(1k10,1x1,x2n1y1,y2m)k,x_1,y_1,x_2,y_2(1≤k≤10,1≤x_1,x_2≤n,1≤y_1,y_2≤m),其中 kk 表示小明最多能转的弯数,(x1,y1)(x_1,y_1)(x2,y2)(x_2,y_2) 表示两个位置,其中 x1,x2x_1,x_2 对应列,y1,y2y_1,y_2​ 对应行。

输出格式

每组测试数据对应为一行,若小明能从一个位置走到另外一个位置,输出"yes",否则输出"no"

格式说明输出时每行末尾的多余空格,不影响答案正确性

输入、输出要求要求使用「文件输入、输出」的方式解题,输入文件为 maze.in,输出文件为 maze.out

样例输入

2
5 5
...**
*.**.
.....
.....
*....
1 1 1 1 3
5 5
...**
*.**.
.....
.....
*....
2 1 1 1 3

样例输出

no
yes