QOJ.ac

QOJ

时间限制: 2.0 s 内存限制: 1024 MB 总分: 100 可 Hack ✓

#9830. 湮灭游戏

统计

有两个玩家在一条向右无限延伸的带状纸带上玩游戏。纸带上的格子从左到右编号为 $1, 2, 3, \dots$。每个格子 $x$ 与 $x-1$ 和 $x+1$ 相邻,但格子 $1$ 只与格子 $2$ 相邻。

纸带上有有限数量的红色棋子(第一个玩家的棋子)和蓝色棋子(第二个玩家的棋子)。每个格子要么包含若干红色棋子,要么包含若干蓝色棋子,要么为空。

玩家轮流行动。在每一轮中,玩家可以选择跳过该回合,或者将其中的一个棋子移动到相邻的格子。如果相邻的格子中没有对手的棋子,则回合结束;如果相邻格子中至少有一个对手的棋子,则该格子中的每个玩家各移除一个棋子——因此,在回合结束时,同一个格子中仍然不会有两个不同颜色的棋子。

如果双方的棋子都用完了,游戏以平局结束。如果只有一方的棋子用完了,则该方被判负,另一方被判胜。最后,如果 $10^{100}$ 回合后游戏仍未结束,则强制结束并判为平局。

给定纸带的初始布局。请确定在双方均采取最优策略的情况下谁会获胜,并为第一个玩家找到任意一个最优的首步移动。

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 $t$ ($1 \le t \le 10^4$)。

每个测试用例的第一行包含一个整数 $n$,表示初始时至少包含一个棋子的格子数量 ($2 \le n \le 2 \cdot 10^5$)。

接下来的 $n$ 行,每行包含两个整数 $x_i, m_i$ 和一个字符 $c_i$,分别表示从左往右第 $i$ 个非空格子的坐标、该格子中棋子的数量以及棋子的颜色 ($1 \le x_1 < x_2 < \dots < x_n \le 10^6$; $1 \le m_i \le 10^6$; $c_i \in \{R, B\}$)。保证纸带上至少有一种颜色的棋子。

保证所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出: “First $x$ $d$”,如果第一个玩家(移动红色棋子)将获胜; “Second”,如果第二个玩家(移动蓝色棋子)将获胜; * “Draw $x$ $d$”,如果游戏结果为平局。

在第一种和第三种情况中,$x$ $d$ 分别指定了任意一个获胜或平局的移动——即在采取该移动后,若第二个玩家采取最优策略,仍有获胜或平局的可能。这里,$x$ 是第一个玩家应该移动的红色棋子的坐标,$d \in \{-, +\}$ 是移动方向(‘-’ 表示棋子应移动到格子 $x-1$,‘+’ 表示棋子应移动到格子 $x+1$)。如果 $d$ 为 ‘-’,则 $x$ 必须大于 $1$。如果你建议第一个玩家跳过回合,请输出 “0 0” 代替 “$x$ $d$”。

你可以以大写或小写形式打印每个字母:例如,“First”、“FIRST”、“fiRST” 将被判题器视为等价。

样例

样例输入 1

10
2
1 1 R
2 1 B
2
1 1 B
2 1 R
2
1 2 B
4 1 R
4
1 1 B
2 1 R
4 3 B
6 1 R
2
1 2 B
3 1 R
2
1 2 B
2 1 R
2
1 1 R
2 2 B
2
1 2 R
3 1 B
3
1 1 R
2 1 R
4 1 B
2
1 2 R
2 1 B

样例输出 1

Draw 0 0
Draw 2 -
Draw 4 -
Draw 2 -
Draw 0 0
Draw 2 +
Second
Draw 0 0
Draw 2 -
First 1 +

说明

在最后一个测试用例中,除了 “1 +” 之外,唯一可能的移动是 “0 0”(跳过回合)。但这是一种平局移动,因此不会被接受。

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.