测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A71356. 闯迷宫

编程题 基础

题目描述

有一个迷宫,迷宫由 nm 列的字符组成,在迷宫中 . 代表该位置可以通过,* 表示该位置是障碍,不能通过;当然,你只能在迷宫中行走,不能走出迷宫。

初始状态下,你在第 r 行,第 c 列的格子中,你可以沿着上下左右四个方向移动到非障碍格中。

在迷宫中移动,还有一个非常特殊的要求,向左最多只能移动不超过 x 格,向右最多只能移动不超过 y 格;上下两个方向没有任何限制。

请问:从出发点开始,最多可以走过多少个格子?(请注意:本题出发点也算在统计的格子总数中)

输入格式

1 行有 2 个整数,nm ,分别表示迷宫的行和列数;(1≤n,m≤2000

2 行有 2 个整数 rc ,表示出发点的位于第 r 行第 c 列;(1≤r≤n,1≤c≤m

3 行有 2 个整数 xy ,表示向左和向右最多能够移动的次数;(1≤x,y≤10^9

接下来有 n 行,每行有 m 个字符,每个字符不是 . 就是 *

本题确保出发点不是障碍。

输出格式

输出一个整数,表示从起点出发,最多能够走到的格子数(含起点)。

输入输出样例

输入 #1
4 5
3 2
1 2
.....
.***.
...**
*....
输出 #1
10
输入 #2
4 4
2 2
0 1
....
..*.
....
....
输出 #2
7

说明/提示

【样例解释 1

样例 1 中能够走到的点,用 + 标记出来的结果如下图所示:

+++..
+***.
+++**
*+++.

【样例解释 2

样例 2 中能够走到的点,用 + 标记出来的结果如下图所示:

.++.
.+*.
.++.
.++.