atcoder#ABC300C. [ABC300C] Cross
[ABC300C] Cross
配点 : 点
問題文
縦 マス横 マスのグリッドがあります。グリッドの上から 行目、左から 列目のマスを と呼びます。
グリッドの各マスには #
と .
のいずれかの文字が書かれています。 に書かれている文字を とします。また、整数 が と の少なくとも一方を満たさない場合、 を .
と定義します。
正整数 が以下の条件を全て満たす時、 および の マスを (a,b) を中心とするサイズ n のバツ印 と呼びます。
- は
#
である。 - を満たす整数 について、 はいずれも
#
である。 - $C[a+n+1][b+n+1],C[a+n+1][b-n-1],C[a-n-1][b+n+1],C[a-n-1][b-n-1]$ のうち少なくとも 1 つは
.
である。
例えば次の図で示された例では、 を中心とするサイズ のバツ印と を中心とするサイズ のバツ印がグリッド上にあります。
グリッドにはいくつかのバツ印があります。バツ印を構成するマス以外に #
は書かれていません。
また、異なるバツ印を構成するマス同士は頂点を共有しません。以下の 2 つのグリッドは異なるバツ印を構成するマス同士が頂点を共有している例で、このようなグリッドの状態は入力として与えられません。 例えば左のグリッドでは と が頂点を共有しているのが条件に反しています。
とします。また、サイズ のバツ印の個数を とします。 を計算してください。
制約
- は
#
または.
- 異なるバツ印を構成するマス同士は頂点を共有しない
- は整数
入力
入力は以下の形式で標準入力から与えられる。
出力
を空白区切りで出力せよ。
5 9
#.#.#...#
.#...#.#.
#.#...#..
.....#.#.
....#...#
1 1 0 0 0
問題文に書かれた説明の通り、 を中心とするサイズ のバツ印と を中心とするサイズ のバツ印が書かれています。
3 3
...
...
...
0 0 0
バツ印が 1 個も書かれていない場合もあります。
3 16
#.#.....#.#..#.#
.#.......#....#.
#.#.....#.#..#.#
3 0 0
15 20
#.#..#.............#
.#....#....#.#....#.
#.#....#....#....#..
........#..#.#..#...
#.....#..#.....#....
.#...#....#...#..#.#
..#.#......#.#....#.
...#........#....#.#
..#.#......#.#......
.#...#....#...#.....
#.....#..#.....#....
........#.......#...
#.#....#....#.#..#..
.#....#......#....#.
#.#..#......#.#....#
5 0 1 0 0 0 1 0 0 0 0 0 0 0 0