Universal Cup Judging System

Universal Cup

Time Limit: 2.0 s Memory Limit: 512 MB Total points: 100 Hackable ✓
Statistics

在许多组合博弈中,规则的微小改变都可能彻底改变游戏的“格局”。国际象棋也不例外。通常,兵是国际象棋中唯一移动方式与吃子方式不同的棋子:兵向前移动,但斜向吃子。但如果不存在这种区别会怎样呢?

可以肯定的是,由此产生的游戏将与我们所知的国际象棋感觉大不相同。由于兵根本无法被阻挡,因此不会有封闭的兵阵结构。事实上,在我们的“新”国际象棋中,阻止前进的兵只有一种方法:吃掉它。因此,不存在(经典意义上的)“封闭”局面。也没有任何方法可以制造叠兵。

很明显,这种变化将彻底改变我们在游戏各个阶段的下法:开局、中局和残局。你的任务是研究这种变化如何影响残局理论中最简单的部分:王兵对王残局。

所有其他规则保持不变。你只需要考虑合理的局面。一个局面是合理的,当且仅当满足以下所有条件:

  1. 所有三枚棋子(白王、白兵、黑王)位于互不相同的方格上。
  2. 白兵既不在第 1 行,也不在第 8 行。
  3. 如果轮到白方走棋,则黑王未被将军。如果轮到黑方走棋,则白王未被将军。特别地,王不能位于相邻(无论是侧面还是对角线)的方格上。

这里有两点需要注意。首先,如果兵位于第 2 行,那么它控制着自身前方的两个方格。也就是说,兵的吃子方式与移动方式完全相同。例如,位于 c2 的兵同时控制 c3 和 c4。考虑以下局面:

仅在轮到黑方走棋时合理。黑方被将军。

如果轮到白方走棋,该局面不合理,因为黑王被将军了。如果轮到黑方走棋,该局面是合理的,且黑方只有两种合法走法:Kb3 和 Kb4,因为 a3 被白兵控制,而 a5 和 b5 被白王控制。

这里有第二个需要注意的重要事项。虽然上述局面是合理的(轮到黑方走棋),但它在通常意义上是不合法的(无法通过从初始局面开始的合法走法序列到达)。如果你仔细思考,就会发现白方不可能做出任何导致该局面的前一步走法。所有合法的局面都是合理的,但并非所有合理的局面都是合法的。通俗地说,合理的局面是那些“乍一看合法”的局面。你被明确要求解决针对合理局面的问题,因此输入中的某些局面在通常意义上可能是非法的。

如前所述,所有常规游戏规则保持不变。如果兵在第 2 行,它可以选择向前移动两格,前提是这两个方格都是空的(当然,它不能跳过白王)。当兵到达第 8 行时,它可以升变为后、车、象或马。逼和(Stalemate)和三次重复局面仍然判和。你可以假设不存在 50 回合规则(可以证明,增加或删除 50 回合规则永远不会改变游戏的结果)。

输入格式

输入的第一行包含一个整数 $t$:需要考虑的局面数量($t \ge 1$)。接下来的 $t$ 行描述了这些局面。

每个局面描述如下:白王、白兵和黑王所在的方格(按此顺序),以及当前轮到谁走棋(“w”代表白方,“b”代表黑方)。方格以标准方式描述(“a”–“h”代表列,“1”–“8”代表行)。行中的四个标记由单个空格分隔。行末没有多余的空格。如有疑问,请参考样例输入。

输入中的所有局面都是合理的且两两不同。仅移动方不同的局面被视为不同的局面。

输出格式

对于输入中的每个局面,打印一行:“Win”(如果白方获胜)或“Draw”(否则)。

样例

样例输入 1

6
a2 d7 e7 w
b6 d7 e7 b
b6 d7 e7 w
b5 a2 b2 w
a6 a2 a4 b
g6 g7 h8 b

样例输出 1

Draw
Draw
Win
Win
Draw
Draw

说明

白方走棋,和棋。白方可以升变,但黑方会立即吃掉升变后的棋子。

黑方走棋,和棋。黑方可以立即吃掉兵。

白方走棋,胜。白方走 Kc7 并安全地升变兵。注意,这与前一个局面的唯一区别在于移动方。

白方走棋,胜。白方走 a4,利用兵在第 2 行时向前移动两格的权利。

黑方走棋,和棋。黑方走 Kb3 并在下一回合吃掉兵。

黑方走棋,和棋。黑方没有合法走法,但其王未被将军。因此,这是逼和,局面按定义判和。

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.