CF592A PawnChess

题目描述

Galois 是 Byteforces 中最强的国际象棋选手之一。他甚至发明了一种新的国际象棋变体,命名为「PawnChess」。 这种新游戏在一个 $8$ 行 $8$ 列的棋盘上进行。每局开始时,会在棋盘上放置一些黑卒和白卒。黑卒和白卒的数量不一定相等。 让我们用整数 $1$ 到 $8$ 给所有的行和列编号。行数从上到下计数,列数从左到右计数。我们用 $ (r,c) $ 表示第 $r$ 行第 $c$ 列的格子。 游戏由两位选手 A 和 B 参与。A 方执白卒,B 方执黑卒。A 方的目标是让任意一个白卒到达第 $1$ 行,B 方的目标则是让任意一个黑卒到达第 $8$ 行。一旦有任意一方完成目标,游戏立即结束,该方获胜。 A 方先手,然后两人轮流行动。每一回合,A 方必须选择恰好一个白卒向上移动一步,B 方则必须选择恰好一个黑卒向下移动一步。只有当目标格为空时才能进行移动。保证对于游戏的任意情况,任意一方至少总有一枚卒可以移动。 向上移动表示将位于 $(r,c)$ 的卒移动到 $(r-1,c)$,向下移动则是将位于 $(r,c)$ 的卒移动到 $(r+1,c)$。目标格必须是空的,即没有任何颜色的卒占据。 给定棋盘的初始状态,若双方都采用最优策略,判断谁将获胜。注意,因为保证了任意情况双方都能进行移动,一定会有一方获胜。

输入格式

输入包含 $8$ 行,每行包含 $8$ 个字符,描述棋盘状态。字符 'B' 表示黑卒,'W' 表示白卒,'.' 表示空格。 保证第一行没有白卒,第八行没有黑卒。

输出格式

如果 A 方获胜,输出 'A';如果 B 方获胜,输出 'B'。保证对于给定的棋盘总有一方能获胜。

说明/提示

在第一个样例中,A 方只需 3 步即可让位于 $(4,5)$ 的卒到达第 $1$ 行。而 B 方的任意一枚卒至少需要 5 步才能到达第 $8$ 行,因此 A 方获胜。 由 ChatGPT 5 翻译