#5277. 魔法好位置
魔法好位置
题目描述
在哈利波特魔法学院的棋盘游戏中,有一位擅长魔法三子棋的巫师。魔法三子棋的棋盘是一个n行m列的魔法网格,上面布满了神秘的符号和棋子。在这个游戏中,棋子可以是任何魔法学院的学生,而空着的位置则等待新的魔法学生加入。
三子棋巫师今天想要尝试一种新的玩法:他可以在任何空着的位置上召唤一个新的魔法学生。如果这个新学生能够与已有的两个学生形成三连(无论是水平、垂直还是对角线),那么这个位置就是一个“魔法好位置”。
现在,三子棋巫师需要你的帮助来找出棋盘上所有的“魔法好位置”。
输入格式
第一行为空格隔开的两整数 n,m。 接下来 n 行,每行为 m 个字符,描述了整个棋盘,第 i 行第 j 列的字符为 ,描述了第 i 行第 j 列的格子。
如果字符为 . 则表示这个位置没有棋子,如果字符为 # 则表示这个位置有一个己方棋子。
输出格式
一行一个整数,表示有多少个空着的位置是好位置。
输入数据 1
5 7
.......
...#...
...##..
.......
...#..#
输出数据1
6
样例解释
下面用字符 o 标出了所有好位置
..oo... ...#... ..o##o. ...o.o. ...#..#
数据规模与约定
对于 100% 的数据,1≤n,m≤50,为 .# 中的一种。
子任务 1(30 分):保证有且仅有两个位置为 # 子任务 2(30 分):保证每个 # 与其他 # 的行数要么相同,要么相差大于 2。即不会产生竖着、斜着的三连。 子任务 3(40 分):无特殊限制