SP3533 BGAME - Game on board
题目描述
两位玩家 A 和 B 在 $n \times n$ 的棋盘上进行游戏。棋盘上的方格可能是白色或黑色。游戏只在白色方格上进行——黑色方格不参与游戏。每位玩家有一个棋子,最开始放在他们各自的起始位置上,这些起始点都是白色方格。注意,A 和 B 的起始点是不同的。
在每一轮游戏中,玩家可以把他们的棋子移动到相邻的一个白色方格(可以是向上、向下、向左或向右)。如果玩家把棋子移动到对方棋子所在的方格,他可以获得额外的一次移动机会(也就是他跳过了对手)。值得注意的是,第二次移动的方向可以和第一次不一样。
游戏由 A 先开始,然后双方轮流移动。整个游戏的目标是将自己的棋子先移动到对手的起始位置。谁的棋子先达到对方的起始点,谁就获胜。尽管玩家可能通过连续两次跳跃只需略过对手的起始点而获胜,但这仍然符合游戏规则。我们的任务是判定哪位玩家拥有必胜的策略(即不论对手如何行动,该玩家总能获胜)。
### 任务
编写一个程序:
- 从标准输入中读取棋盘布局和两名玩家的初始位置,
- 判断哪名玩家具有必胜策略,
- 将结果输出到标准输出中。
输入格式
第一行包含一个整数 $t$,表示测试用例的数量($1 \le t \le 10$)。接下来是 $t$ 个测试用例的描述。每个测试用例的描述如下:首行是一个整数 $n$($2 \le n \le 300$),表示棋盘的边长。接下来的 $n$ 行描述了棋盘的布局。每行由 $n$ 个字符组成(字符之间没有空格),每个字符可以是 `.`(表示白色方格),`#`(表示黑色方格),`A`(A 的起始位置),或 `B`(B 的起始位置)。
可以假定 A 和 B 的起始位置之间必有一条由白色方格组成的通路。
输出格式
对每个测试用例,输出一行,包含一个字符 `A` 或 `B`,表示具有必胜策略的玩家。
**本翻译由 AI 自动生成**