4039. 逆十字

单点时限: 1.0 sec

内存限制: 256 MB

有一张 nm 列的方格纸,每个格子是空位或障碍,分别用 .# 表示。

一个十字由一排水平的格子和一排竖直的格子(分别称为横行、纵列)交错形成。例如下图中就是一个十字:

合法的十字还需要满足一些条件:

  • 横行和纵列长度相同,且都为 3 的奇数;
  • 横行和纵列的交点既将横行二等分,又将纵列二等分;
  • 十字上不包含障碍格子。

我们称一个十字是逆十字,当且仅当不存在比它大的十字完全包含它。

现在,Cuber QQ 想让你数出逆十字的数量。

输入格式

第一行两个整数 n,m1n,m100)。

接下来 n 行,每行一个长为 m 的字符串,其中第 i 行第 j 列的字符表示方格纸中第 i 行第 j 列的状态。

输出格式

一行一个整数,表示答案。

样例

Input
5 5
##.##
#...#
.....
#...#
##.##
Output
5

提示

图中有 6 个十字,但是位于中央的一个小十字被大十字所包含,所以逆十字只有 5 个。

322 人解决,342 人已尝试。

334 份提交通过,共有 667 份提交。

1.4 EMB 奖励。

创建: 4 年,4 月前.

修改: 4 年,3 月前.

最后提交: 3 天,5 小时前.

来源: EOJ Monthly 2021.1

题目标签