AT_code_festival_relay_d FU

题目描述

X さん和 Y さん正在玩一个名为“FU”的游戏。 这个游戏在一个 $n \times n$ 的棋盘上进行,棋盘被分成 $n$ 行 $n$ 列的正方形格子。X さん将自己的“FU”棋子分别放在棋盘最上面一行的每个格子里,棋子朝下;Y さん将自己的“FU”棋子分别放在棋盘最下面一行的每个格子里,棋子朝上。 玩家轮流按照以下规则选择并移动自己的一个“FU”棋子: - X さん的“FU”只能向下移动到相邻的格子。 - Y さん的“FU”只能向上移动到相邻的格子。 - 如果自己的“FU”移动到对方“FU”所在的格子,则可以吃掉对方的“FU”。 在这个游戏中,不能跳过自己的回合,也不能连续两次移动自己的“FU”。吃掉对方所有“FU”的玩家获胜。 ぬまくんさん在比赛刚开始不久时观看了 X さん和 Y さん的对局,但由于两位选手专注于比赛,无法得知谁是先手。幸运的是,比赛刚开始,双方都还没有吃掉对方的“FU”,所以可以通过当前棋盘状态来判断谁是先手。 请你编写程序,根据当前棋盘状态,判断谁是先手。

输入格式

输入如下格式: > $n$ > $B_{1,1}B_{1,2}\ldots B_{1,n}$ > $B_{2,1}B_{2,2}\ldots B_{2,n}$ > $\ldots$ > $B_{n,1}B_{n,2}\ldots B_{n,n}$ - 第 $1$ 行为棋盘边长 $n$,$2 \leq n \leq 100$。 - 接下来的 $n$ 行,每行 $n$ 个字符,依次表示从最上面一行到最下面一行的棋盘状态。 - $B$ 的每个元素为 `.`、`X` 或 `Y`,分别表示该格为空、X さん的“FU”或 Y さん的“FU”。 - 每一列必定恰好有一个 `X` 和一个 `Y`,且 `X` 一定在 `Y` 之上。 - 输入保证棋盘状态不会与游戏规则矛盾。

输出格式

如果 X さん是先手,输出 `X`;如果 Y さん是先手,输出 `Y`。 如果无法判断谁是先手,输出 `Impossible`。 输出仅一行,不要输出多余字符或空行。

说明/提示

由 ChatGPT 4.1 翻译