从文件 explore.in 中读入数据。 本题有多组测试数据。
输入的第一行包含一个正整数 T ,表示数据组数。 接下来包含 T 组数据,每组数据的格式如下:
第一行包含三个正整数 n,m, k。其中 n, m 表示地图的行数和列数,k 表示机器人执行操作的次数。
第二行包含两个正整数 x0 , y0 和一个非负整数 d0。
接下来 n 行,每行包含一个长度为 m 的字符串。保证字符串中只包含 x 和 . 两个字符。其中,第 x 行的字符串的第 y 个字符代表的位置为 (x, y)。这个位置是 x 即代表它是障碍,否则代表它是空地。数据保证机器人初始时所在的位置为空地。
输出到文件 explore. out 中。
对于每组数据:输出一行包含一个正整数,表示地图上所有被机器人经过的位置(包括起始位置)的个数。
2
1 5 4
1 1 2
....x
5 5 20
1 1 0
.....
.xxx.
.x.x.
..xx.
x....
3
13
【样例 1 解释】
该样例包含两组数据。对第一组数据,机器人的状态以如下方式变化:
1. 初始时,机器人位于位置 (1, 1),方向朝西(用数字 2 代表)。
2. 第一步,机器人发现它下一步的位置 (1, 0) 不在地图内, 因此,它会执行“向右 转”操作。此时,它的位置仍然为 (1, 1),但方向朝北(用数字 3 代表)。
3. 第二步,机器人发现它下一步的位置 (0, 1) 不在地图内,因此,它仍然会执行“向 右转”操作。此时,它的位置仍然为 (1, 1),但方向朝东(用数字 0 代表)。
4. 第三步,机器人发现它下一步的位置 (1, 2) 在地图内,且为空地。因此,它会向 东走一步。此时,它的位置变为 (1, 2) ,方向仍然朝东。
5. 第四步,机器人发现它下一步的位置 (1, 3) 在地图内,且为空地。因此,它会向 东走一步。此时,它的位置变为 (1, 3) ,方向仍然朝东。
因此,四步之后,机器人经过的位置有三个,分别为 (1, 1), (1, 2), (1, 3)。
对第二组数据,机器人依次执行的操作指令为: 向东走到 (1, 2), 向东走到 (1, 3), 向东走到 (1, 4),向东走到 (1, 5),向右转,向南走到 (2, 5),向南走到 (3, 5),向南走到 (4, 5),向南走到 (5, 5),向右转,向西走到 (5, 4),向西走到 (5, 3),向西走到 (5, 2),向 右转,向北走到 (4, 2),向右转,向右转,向南走到 (5, 2) ,向右转,向右转。
【数据范围】
对于所有测试数据,保证:1 ≤ T ≤ 5, 1 ≤ n, m ≤ 10^3 , 1 ≤ k ≤ 10^6 , 1 ≤ x0 ≤ n, 1 ≤ y0 ≤ m, 0 ≤ d0 ≤ 3 ,且机器人的起始位置为空地。