4039. 逆十字

单点时限: 1.0 sec

内存限制: 256 MB

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

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

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

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

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

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

输入格式

第一行两个整数 $n, m$($1 \le n, m \le 100$)。

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

输出格式

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

样例

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

提示

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

301 人解决,317 人已尝试。

310 份提交通过,共有 613 份提交。

1.4 EMB 奖励。

创建: 7 月,1 周前.

修改: 6 月,3 周前.

最后提交: 2 周,2 天前.

来源: EOJ Monthly 2021.1

题目标签