已结束 GESP欢乐赛 #2

A1415 | AC狗的C

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

这天,AC狗走在路上,突然摔了一跤,爬起来后发现自己好像有点变化,AC的C摔掉了,只剩下A,这回得改名叫A狗了。

但是AC狗不想改名,想找回他的C,他在地上疯狂寻找,发现地上掉落了不少个C。

假设地面是一个 $N×M$ 的平面。平面里要么是字符.,要么是字符*。找到所有*构成的C的个数。

C的上下两端的长度相同,长度至少为2,竖列的长度至少为3,且C的内部不能有*。并且这些C独立唯一,不和其他字符连在一起。且C的列宽度为1。

(连在一起是指上下左右四个方向)

例如:

```
.....
.***.
.*...
.***.
.....
```

是一个C。

```
.....
.***.
.*...
.**..
.....
```
不是一个C,上下两端长度不同。

```
.....
.***.
.**..
.***.
.....
```
不是一个C,C竖着的列宽度为1,且内部不能有符号。

```
.....
.***.
.*...
.***.
**...
```
不是一个C,因为不是独立存在,和其他连在一起。

```
.....
.***.
.*...
.***.
*....
```
是一个C。

输入格式

输入的第一行是两个整数 $N, M$

接下来$N$行每行$M$ 个字符,要么是.要么是*,代表地面。

输出格式

输出为一个整数,代表地面里C的数量。

输入输出样例

输入 #1
8 10
...**.....
**.*..****
*..*..*...
**.**.****
..........
**********
*.........
**********
输出 #1
4
输入 #2
11 9
***......
*..****..
**.*.....
**.*..**.
*..*..*..
**.*..**.
...*.....
...****..
**.......
*......**
**.....**
输出 #2
2
C++ 编辑器
输入
输出