#P05028. 五子棋之五子连珠次数

五子棋之五子连珠次数

题目背景

五子棋起源于中国,是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏。双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成五子连珠者获胜。

现在扩充传统五子棋的玩法,对弈双方交替落子若干回合后,计算并比较双方五子连珠出现情况的次数,次数多的一方获胜。

题目描述

对于 nnmm 列个格子的棋盘,可知一共有 (n+1)×(m+1)(n+1)\times(m+1) 个交叉点,给定对弈双方交替落子若干回合后所有交叉点的落子情况,编写程序计算黑白双方五子连珠出现情况的次数。

输入格式

有若干行。

11 行是两个正整数 nnmm,两者有一个空格;

接下来有 n+1n+1 行,每行有 m+1m+1 个字符,描述的是对弈黑白双方交替落子若干回合后所有交叉点的落子情况。字符只会是 BW空格 中的一种,分别表示对应交叉点上 落黑子落白子没有落子

输出格式

两个整数,依次是黑白双方五子连珠出现情况的次数,两者中间用一个空格隔开。

输入输出样例

5 6
 BBBBBB
W WBWBW
BBBWWWW
WBB WWW
BWBWBWW
 BWBBWW
3 3

说明/提示

👀️ 对于100%100\%的数据,1n,m1001 \leq n,m \leq 100,保证落子情况符合要求并且黑白子数目相等。

👀️ 使用C/C++编程解决问题,推荐使用 getchar 函数输入字符,此时要考虑行末的换行符。

👀️ 仔细研究输入输出样例,分析题目中要计算的 出现五子连珠情况的次数 的具体含义(额外提示:样例第 11 行中出现的 BBBBBB ,要算 22 次五子连珠)。

image

image