#106. 视线所及之处
视线所及之处
视线所及之处
题目描述
给定一个由障碍和空地组成的网格,网格共有 H 行、W 列。记第 i 行第 j 列的方格为 (i, j)。
若两个方格位于同一行或同一列,且连接它们的所有方格(包含两端点)中不存在障碍(即均为 .),则称其中一个方格对另一个方格是可见的。
给定一个起点方格 (X, Y),保证该方格不含障碍,求从 (X, Y) 出发在同一行或列能看见的方格总数(包含 (X, Y) 自身)。
直观理解:将一盏“探照灯”放在 (X, Y) 处,沿上/下/左/右四个方向照射,遇到障碍 # 即停止;被照到的所有方格(含起点)记为可见。
输入格式
- 第一行包含四个整数:
H W X Y。 - 接下来
H行,每行一个长度为W的由.和#组成的字符串S_i:.表示空地;#表示障碍。
输出格式
输出一个整数,表示从 (X, Y)(包含自身)可见的方格数量。
数据范围与保证
1 ≤ H, W ≤ 1001 ≤ X ≤ H1 ≤ Y ≤ W- 每个
S_i的长度为W (X, Y)处为.
样例
输入:
4 5 2 3
.#...
.....
#.#..
....#
输出:
6
解释:第 2 行无障碍,整行 5 个格子可见;第 3 列向上可见到 (1,3),向下被 (3,3) 的障碍阻挡,因此额外 1 个;合计 6 个。
相关
在下列比赛中: