QOJ.ac

QOJ

حد الوقت: 5 s حد الذاكرة: 1024 MB مجموع النقاط: 23

#5831. 旋转

الإحصائيات

在 Join-K 这个激动人心的游戏中,红棋和蓝棋被投入到一个 $N \times N$ 的棋盘中。棋盘垂直放置,棋子会落入所在列最底部的空位。例如,考虑以下两种布局:

- 合法位置 -

.......
.......
.......
....R..
...RB..
..BRB..
.RBBR..
- 非法位置 -

.......
.......
.......
.......
Bad -> ..BR...
...R...
.RBBR..

在这些图中,每个 '.' 代表一个空位,每个 'R' 代表一个红棋,每个 'B' 代表一个蓝棋。左侧的布局是合法的,而右侧的则不是。这是因为第三列中的一个棋子(箭头所指)没有落到它下方的空位上。

如果玩家能将至少 K 个己方颜色的棋子连成一线(水平、垂直或对角线),该玩家获胜。四种可能的连线方向如下所示:

- 四子连珠 -

R   RRRR    R   R
R          R     R
R         R       R
R        R         R

在题目开头的“合法位置”图中,两位玩家都连成了两个棋子,但没有连成三个。

事实证明,你现在正在进行一场非常刺激的 Join-K 游戏,并且你有一个确保胜利的巧妙计划!当对手不注意时,你打算将棋盘顺时针旋转 90 度。重力会使棋子落入新的位置,如下图所示:

- 开始 -

.......
.......
.......
...R...
...RB..
..BRB..
.RBBR..
- 旋转 -

.......
R......
BB.....
BRRR...
RBB....
.......
.......
- 重力 -

.......
.......
.......
R......
BB.....
BRR....
RBBR...

不幸的是,在对手察觉之前,你只有时间旋转一次。

剩下的就是选择合适的时机采取行动。给定一个棋盘布局,你需要确定在将棋盘顺时针旋转并让重力在新的方向上生效后,哪位玩家(或双方!)会有 K 个棋子连成一线。

说明

  • 你只能旋转棋盘一次。
  • 假设重力仅在棋盘完全旋转后才生效。
  • 仅在重力作用结束后检查获胜者。

输入格式

输入的第一行包含测试用例的数量 T。接下来是 T 个测试用例,每个测试用例的第一行包含整数 NK。接下来的 N 行,每行包含恰好 N 个字符,表示棋盘的初始位置,格式与上述图示相同。

每个测试用例的初始位置都是 Join-K 游戏中可能出现的合法位置。特别地,没有任何玩家在初始状态下已经连成了 K 个棋子。

输出格式

对于每个测试用例,输出一行 "Case #x: y",其中 x 是用例编号(从 1 开始),y 是 "Red"、"Blue"、"Neither" 或 "Both" 之一。这里 y 表示在旋转棋盘后,哪位玩家或哪些玩家会有 K 个棋子连成一线。

数据范围

$1 \le T \le 100$。

$3 \le K \le N$。

小数据集(测试集 1 - 可见;11 分)

$3 \le N \le 7$。

大数据集(测试集 2 - 隐藏;12 分)

$3 \le N \le 50$。

样例

输入格式 1

4
7 3
.......
.......
.......
...R...
...BB..
..BRB..
.RRBR..
6 4
......
......
.R...R
.R..BB
.R.RBR
RB.BBB
4 4
R...
BR..
BR..
BR..
3 3
B..
RB.
RB.

输出格式 1

Case #1: Neither
Case #2: Both
Case #3: Red
Case #4: Blue

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.