#6071. 迷宫探索
迷宫探索
题目描述
小 正在参加一场迷宫探索竞赛。竞赛场地是一个由 行 列方格组成的矩形迷宫。在迷宫中,部分方格是平坦的通道(用 . 表示),部分方格则是坚硬的墙壁(用 # 表示)。
为了快速了解迷宫的结构,小 配备了一个高科技信号探测仪。小 可以将其放置在迷宫中的任意一个通道方格 内。探测仪一旦启动,会同时向上、下、左、右 四个方向发射直线脉冲信号。
信号的传播规则如下:
- 信号只能在通道方格 中传播。
- 信号在每个方向上都会沿直线行进,直到遇到墙壁 或迷宫边界 为止。
- 被信号经过的所有通道方格(包括探测仪所在的那个方格)都会被探测仪记录下来。
小 希望找出一个最佳的放置位置,使得探测仪单次发射信号能够记录到的通道方格数量最多。
请你编写程序,帮助小 计算出,探测仪能记录到的通道方格的最大数量。
输入格式
输入第一行包含两个正整数 和 ,表示迷宫的行数和列数。
接下来的 行,每行包含一个长度为 的字符串,代表迷宫的布局。其中 . 表示通道,# 表示墙壁,输入保证字符串中只包含这两种字符。
输出格式
输出一个整数,表示在最佳放置位置下,探测仪能够记录到的通道方格的最大数量。
样例 #1
样例输入 #1
4 6
#..#..
.....#
....#.
#.#...
样例输出 #1
8
样例 #2
样例输入 #2
8 8
..#...#.
....#...
##......
..###..#
...#..#.
##....#.
#...#...
###.#..#
样例输出 #2
13
样例 #3
样例输入 #3
12 15
...............
...#...........
.......#.......
...............
.....#.........
............#..
...............
..#............
...............
.......#.......
...............
....#..........
样例输出 #3
26
说明
样例 1 说明 若将探测仪放置在第 行第 列(行、列索引均从 1 开始计算):
- 水平方向:可以探测到第 2 行中从第 1 列到第 5 列的所有通道(
.),共 5 个方格。 - 垂直方向:可以探测到第 2 列中从第 1 行到第 4 行的所有通道(
.),共 4 个方格。 - 合并记录:由于第 行第 列的方格在两个方向都被探测到了,因此总记录数为 。
经过验证,这是该迷宫中放置探测仪的最优方案。
数据范围
| 测试点编号 | |
|---|---|
对于 的数据,满足 。
输入数据保证迷宫中至少存在一个通道方格(.)。