UVA852 Deciding victory in Go
题目描述
围棋的历史大约有3000年,发展过程中规则基本保持不变。这场比赛可能起源于中国或喜马拉雅山脉一带。现在在欧洲和美国,这项活动变得普遍起来,并且人们对它的兴趣正在逐步上升。
游戏是这样的:在一个空的方形网格棋盘上,有两个玩家对弈,一个拿黑棋,另一个拿白棋。每个玩家都有无限的棋子供应。游戏的基本目标是使用自己的棋子在棋盘上空的地方围出属于自己的区域。玩家也可以通过完全包围对手的棋子来吃掉(即拿走)它们。围棋采用轮流落子的方式,每一回合玩家可以将一颗棋子放在空闲的区域,其中黑棋一方先落子。注意,石头放置在网格线的交点上,而不是在网格内部。一旦落子,棋子就不能够移动。它们可能被吃掉,在这种情况下,它们将被从棋盘上移除。在比赛结束时(当双方均同意时)双方各自在他们自己的区域内为每一个被占领的空点和棋子计数一目。目数(即得分)较大的玩家获胜。
现在给定对局结束时棋盘上每一个格点的状态,计算双方的目数。
一个示例在这里:

其中黑方获得了15个空区:最上面有3目,向下是2目,在棋盘右下角有9目。加上棋子所占的24目,黑方一共获得39目。
白方的空区是17目:棋盘左边有11目,右上角有6目。加上棋子所占的24目,白方一共获得41目。因此,白方以2目之差赢得比赛。
注意:格点a属于黑方,因为它被黑子包围;而格点b则不属于任何一方。
输入格式
每组包含一个9行9列的棋盘,其中$X$表示黑子,$O$表示白子,$.$则表示空位。每组数据之间没有空行。
输出格式
$Black$ 黑子目数 $White$ 白子目数
输出之后需换行。
感谢@Simpson561 提供翻译