#P16808. [NWRRC 2024]Game of Annihilation

[NWRRC 2024]Game of Annihilation

题目描述

两名玩家在一条向右无限延伸、被划分成格子的纸带上进行游戏。格子从左到右编号为 1,2,3,1,2,3,\ldots。除格子 11 只与格子 22 相邻外,格子 xx 与格子 x1x-1x+1x+1 相邻。

纸带上有有限枚红色棋子和蓝色棋子。红色棋子属于第一名玩家,蓝色棋子属于第二名玩家。每个格子中要么放有若干枚红色棋子,要么放有若干枚蓝色棋子,要么为空,不会同时存在两种颜色。

两名玩家轮流行动。在自己的回合中,玩家可以:

  • 跳过本回合;或
  • 选择自己的一枚棋子,将其移动到相邻格子。

若目标格子中没有对手的棋子,本回合立即结束。若目标格子中至少有一枚对手棋子,则该格子中双方各移除一枚棋子。于是回合结束后,任何格子中仍不会同时出现两种颜色的棋子。

若双方棋子都被全部移除,游戏以平局结束。若恰好一名玩家失去全部棋子,则该玩家失败,另一名玩家获胜。若进行了 1010010^{100} 个回合后游戏仍未结束,也强制判为平局。

给定纸带的初始状态。假设双方都采用最优策略,请判断最终胜负,并为第一名玩家给出任意一个最优首步。

输入格式

每个输入包含多组测试数据。

第一行包含一个整数 tt,表示测试数据组数。

对于每组测试数据:

  • 第一行包含一个整数 nn,表示初始时至少含有一枚棋子的格子数量;
  • 接下来 nn 行,第 ii 行包含两个整数 xi,mix_i,m_i 和一个字符 cic_i
    • xix_i 表示该非空格子的坐标;
    • mim_i 表示其中棋子的数量;
    • ci{R,B}c_i\in\{\texttt{R},\texttt{B}\} 表示棋子颜色。

输入按坐标从左到右给出,并且初始状态中两种颜色的棋子都至少有一枚。

数据范围

1t104,1\le t\le 10^4, 2n2105,2\le n\le 2\cdot 10^5, 1x1<x2<<xn106,1\le x_1<x_2<\cdots<x_n\le 10^6, 1mi106.1\le m_i\le 10^6.

所有测试数据的 nn 之和不超过 21052\cdot 10^5

输出格式

对于每组测试数据:

  • 若第一名玩家(红棋)必胜,输出 First x d
  • 若第二名玩家(蓝棋)必胜,输出 Second
  • 若游戏结果为平局,输出 Draw x d

在第一种和第三种情况下,x d 必须描述第一名玩家的任意一个获胜首步或保平首步:执行该步后,即使第二名玩家采用最优策略,第一名玩家仍能够获胜或至少取得平局。

其中:

  • xx 是被移动红棋所在格子的坐标;
  • d{-,+}d\in\{\texttt{-},\texttt{+}\} 表示移动方向;
  • - 表示从 xx 移到 x1x-1,此时必须有 x>1x>1
  • + 表示从 xx 移到 x+1x+1
  • 若建议第一名玩家跳过回合,则用 0 0 代替 x d

输出中的英文字母不区分大小写。

样例

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
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,即跳过回合。但跳过只能取得平局,而第一名玩家存在获胜行动,因此输出 0 0 不会被接受。