#18007. C - 穿越
C - 穿越
题目描述
现有一个H行W列的网格。网格中从上往下数第i行、从左往右数第j列的单元格记为(i, j)。每个单元格内写有字符#
(表示涂黑)或.
(表示空白)。
设C[i][j]为单元格(i, j)内的字符。对于不满足且(即超出网格范围)的整数i, j,定义C[i][j]为.
。
当正整数a, b, n满足以下所有条件时,由(a, b)以及(a+d, b+d)、(a+d, b-d)、(a-d, b+d)、(a-d, b-d)(其中组成的共4n + 1个单元格,被称为以(a, b)为中心、大小为n的“叉形”(Cross):
- C[a][b]为
#
; - 对于所有满足的整数,、、、均为
#
; - 、、、中至少有一个为
.
。
例如,在下图所示的网格中,存在以((2, 2))为中心、大小为(1)的叉形,以及以((3, 7))为中心、大小为(2)的叉形:
网格中存在若干个叉形,且除了组成叉形的单元格外,其他单元格均无#
。此外,组成不同叉形的单元格之间不会共用顶点(下图中的两种网格均为不同叉形单元格共用顶点的示例,这类网格不会作为输入给出。例如左侧网格中,(3, 3)与(4, 4)共用顶点,不符合输入条件):
设(即H和W中的较小值),表示大小为的叉形的数量。请计算并输出。
输入格式
- 第1行输入两个整数H(行数)和W(列数);
- 接下来H行,每行输入一个长度为W的字符串,依次表示网格第1行到第H行的字符。
输出要求
将以空格分隔的形式输出。
5 9
#.#.#...#
.#...#.#.
#.#...#..
.....#.#.
....#...#
1 1 0 0 0
3 3
...
...
...
0 0 0
3 16
#.#.....#.#..#.#
.#.......#....#.
#.#.....#.#..#.#
3 0 0
15 20
#.#..#.............#
.#....#....#.#....#.
#.#....#....#....#..
........#..#.#..#...
#.....#..#.....#....
.#...#....#...#..#.#
..#.#......#.#....#.
...#........#....#.#
..#.#......#.#......
.#...#....#...#.....
#.....#..#.....#....
........#.......#...
#.#....#....#.#..#..
.#....#......#....#.
#.#..#......#.#....#
5 0 1 0 0 0 1 0 0 0 0 0 0 0 0
提示
- 仅为
#
或.
- 组成不同叉形的单元格之间不会共用顶点
- 和均为整数