#P5395. 字母棋

字母棋

题目描述

放假了,字母王国的 A∼Z 这 26 个好朋友围坐在火炉旁玩起了游戏。模仿人类的井字棋游戏规则,他们创造了字母棋。

字母棋的游戏场景仍然是一个 3×3 的棋盘构成的,每个格子会由 A∼Z 中的某个字母所占领。

形如下图: DFB YDF BYD

有两种获胜的情况:

  1. 如果某个字母占领了某一行,某一列,或者某一对角线的三个格子,则这个字母获胜。
  2. 允许两个不同的字母组队出战,如果某一行,某一列,或者某一对角线由这两个字母完全占领,且这两个字母每个至少出现一次,则这个组合获胜。

你的任务是帮字母们编写一个程序,计算棋盘中单独获胜的字母有多少种以及组队获胜的有多少种。棋盘上的同一个格子可能在不同字母或队伍的获胜中均被用到。

输入格式

输入包含三行,每行三个字母。

输出格式

输出包含两行。

  1. 第一行,输出独自获胜的字母的种数。
  2. 第二行,输出能够组队获胜的队伍数量 (相同字母,先后顺序不同仍属于同一队伍,例如 A,B 和 B,A 属于同一队伍)。

样例输入输出

样例 1

  • 样例输入 1:
DFB
YDF
BYD
  • 样例输出 1:
1
1

样例 2

  • 样例输入 2:
AAB
ACD
BFG
  • 样例输出 2:
0
3

样例 3

  • 样例输入 3:
AAA
ABA
ABB
  • 样例输出 3:
2
6

Hint

样例 1 解释

字母 D 通过对角线实现单独获胜。 字母 B 和 D 组队后通过对角线 B−D−B 获胜。

其他样例说明

无额外补充说明(原文未提供样例 2、3 详细解释,故保留原样)。