AT_arc209_a [ARC209A] Bracket Game
题目描述
有一个只由 `(` 和 `)` 组成的字符串 $S$。
太郎和次郎将用这个字符串玩如下的游戏。
太郎先手,次郎后手,他们轮流选择并进行以下三种操作之一:
- 删除 $S$ 的第一个字符。
- 删除 $S$ 的最后一个字符。
- 宣告终止。
当 $S$ 的长度恰好变为 $K$,或有任意一方宣告终止时,游戏结束。游戏结束时,若 $S$ 是一个合法括号序列,则次郎获胜;否则,太郎获胜。
在游戏开始前,你会得到 $S$。请你判断当双方都采取最优策略时,谁会获胜。
你需要完成 $T$ 组测试,每组分别求解。
什么是一个合法括号序列?只要把字符串中连续的 `()` 作为一个子串删去,反复多次能将整个字符串删成空串,就认为它是一个合法括号序列。
输入格式
从标准输入读入,输入格式如下:
> $T$
> $case_1$
> $case_2$
> $\vdots$
> $case_T$
每组测试数据格式如下:
> $S$ $K$
输出格式
对于每组测试数据,如果太郎获胜则输出 `First`,如果次郎获胜则输出 `Second`。
说明/提示
### 样例解释 1
对于第一组测试数据,游戏可能的过程如下:
- 游戏开始前,$S$ 为 `(()())`。
- 太郎删除 $S$ 的第一个字符,变为 `()())`。
- 接下来,次郎删除 $S$ 的最后一个字符,变为 `()()`。
- 然后,太郎删除 $S$ 的最后一个字符,变为 `()(`。
- 接下来,次郎删除 $S$ 的最后一个字符,变为 `()`,此时 $S$ 的长度变为 $K=2$,游戏结束。
- 最终 $S$ 是一个合法括号序列,所以次郎获胜。
再比如,对于第三组测试数据,太郎可以在第一轮直接宣告终止获胜。
### 数据范围
- $1 \le T \le 10^5$
- $1 \le K < |S| \le 10^6$
- $S$ 是只包含 `(` 和 `)` 的字符串。
- $T$ 和 $K$ 是整数。
- 所有测试数据的 $|S|$ 之和不超过 $10^6$。
由 ChatGPT 5 翻译