#abc300c. [abc300_c]Cross

[abc300_c]Cross

问题描述

我们有一个 HHWW 列的网格。我们用 (i,j)(i, j) 来表示网格中从上到下第 ii 行,从左到右第 jj 列的单元格。
网格中的每个单元格上都写有符号 #.。设 C[i][j]C[i][j](i,j)(i, j) 上的符号。对于整数 iijj,如果至少有一个违反 1iH1 \leq i \leq H1jW1 \leq j \leq W 的条件,则定义 C[i][j]C[i][j].

当满足以下所有条件时,由 (a,b)(a, b)(a+d,b+d),(a+d,bd),(ad,b+d),(ad,bd)(a+d,b+d),(a+d,b-d),(a-d,b+d),(a-d,b-d)4n+14n+1 个方块(其中 1dn,1n1 \leq d \leq n, 1 \leq n),称为(a,b)(a, b) 为中心,大小为 nn 的十字架

  • C[a][b]C[a][b]#
  • 对于所有整数 dd,满足 1dn1 \leq d \leq nC[a+d][b+d],C[a+d][bd],C[ad][b+d]C[a+d][b+d],C[a+d][b-d],C[a-d][b+d]C[ad][bd]C[a-d][b-d] 都是 #
  • C[a+n+1][b+n+1],C[a+n+1][bn1],C[an1][b+n+1]C[a+n+1][b+n+1],C[a+n+1][b-n-1],C[a-n-1][b+n+1]C[an1][bn1]C[a-n-1][b-n-1] 中至少有一个是 .

例如,在以下网格中,以 (2,2)(2, 2) 为中心的大小为 11 的十字架,以及以 (3,7)(3, 7) 为中心的大小为 22 的十字架。

image

网格上有一些十字架。除了构成十字架的单元格外,其他单元格上没有 #
此外,组成两个不同十字架的方块不共享一个角落。以下示例网格是两个共享一个角落的不同十字架的示例;这样的网格不作为输入给出。例如,左侧的网格无效,因为 (3,3)(3, 3)(4,4)(4, 4) 共享一个角落。

image2

N=min(H,W)N = \min(H, W)SnS_n 是大小为 nn 的十字架的数量。找到 S1,S2,,SNS_1, S_2, \dots, S_N

约束条件

  • 3H,W1003 \leq H, W \leq 100
  • C[i][j]C[i][j]#.
  • 组成两个不同十字架的方块不共享一个角落。
  • HHWW 是整数。

输入

输入以以下格式从标准输入中给出:

HH WW C[1][1]C[1][2]C[1][W]C[1][1]C[1][2]\dots C[1][W] C[2][1]C[2][2]C[2][W]C[2][1]C[2][2]\dots C[2][W] \vdots C[H][1]C[H][2]C[H][W]C[H][1]C[H][2]\dots C[H][W]

输出

以空格分隔,输出 S1,S2,,SNS_1, S_2, \dots, S_N


示例输入 1

5 9
#.#.#...#
.#...#.#.
#.#...#..
.....#.#.
....#...#

示例输出 1

1 1 0 0 0

如问题描述所述,在 (2,2)(2, 2) 处有一个以大小为 11 的十字架,还有一个以大小为 22 的十字架,中心坐标为 (3,7)(3, 7)


示例输入 2

3 3
...
...
...

示例输出 2

0 0 0

可能没有任何十字架。


示例输入 3

3 16
#.#.....#.#..#.#
.#.......#....#.
#.#.....#.#..#.#

示例输出 3

3 0 0

示例输入 4

15 20
#.#..#.............#
.#....#....#.#....#.
#.#....#....#....#..
........#..#.#..#...
#.....#..#.....#....
.#...#....#...#..#.#
..#.#......#.#....#.
...#........#....#.#
..#.#......#.#......
.#...#....#...#.....
#.....#..#.....#....
........#.......#...
#.#....#....#.#..#..
.#....#......#....#.
#.#..#......#.#....#

示例输出 4

5 0 1 0 0 0 1 0 0 0 0 0 0 0 0