三子棋
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
33DAI 很喜欢三子棋。今天他在一张很大的方形棋盘上下棋,棋盘可以看作是一个 行 列的网格。(大家应该知道三子棋是下在格子里面的吧?)
33DAI 今天的玩法非常不一样。棋盘上有些位置上有棋子,有些位置上没有。所有的棋子都是己方棋子。33DAI 可以任选一个空着的位置下棋。如果他落子的位置能和周边的另外两个棋子构成三连(横着、竖着、斜着都可以),那么这就是一个好位置。
请你帮 33DAI 找找棋盘上有多少个好位置吧!
输入格式
第一行为空格隔开的两整数 ,。
接下来 行,每行为 个字符,描述了整个棋盘,第 行第 列的字符为 ,描述了第 行第 列的格子。
如果字符为 .
则表示这个位置没有棋子,如果字符为 #
则表示这个位置有一个己方棋子。
输出格式
一行一个整数,表示有多少个空着的位置是好位置。
5 7
.......
...#...
...##..
.......
...#..#
6
样例解释
下面用字符 o
标出了所有好位置
..oo...
...#...
..o##o.
...o.o.
...#..#
数据规模与约定
对于 的数据,, 为 .#
中的一种。
- 子任务 1( 分):保证有且仅有两个位置为
#
- 子任务 2( 分):保证每个
#
与其他#
的行数要么相同,要么相差大于 。即不会产生竖着、斜着的三连。 - 子任务 3( 分):无特殊限制