AT_tupc2024_r Bracket Game
题目描述
给定一个只包含 `(`、`)` 和 `?` 的偶数长度字符串 $S$。
あおばさん和ひろせさん进行游戏。あおばさん先手,轮流进行如下操作,直到 $S$ 中没有 `?` 为止:
- 从 $S$ 中选择一个 `?`,并将其替换成 `(` 或 `)`。
当 $S$ 中不再有 `?` 时,如果 $S$ 是一个正确的括号序列,则あおばさん获胜,否则ひろせさん获胜。
请判断,当两人都采取最优策略时,谁会获胜。
给定 $T$ 组测试数据,每组输入一个 $S$,请分别输出结果。
正确的括号序列定义如下:
- 空字符串;
- 存在一个正确的括号序列 $S$,将 `(`、$S$、`)` 顺序连接得到的字符串;
- 存在非空的两个正确的括号序列 $S$、$T$,将 $S$、$T$ 顺序连接得到的字符串。
输入格式
输入按以下格式给出:
> $T$
> $\mathrm{case}_1$
> $\vdots$
> $\mathrm{case}_T$
每个测试用例为一行字符串 $S$。
输出格式
共输出 $T$ 行。第 $i$ 行输出第 $i$ 个测试用例的答案:如果あおばさん能获胜,输出 `First`,否则输出 `Second`。
说明/提示
### 对于 Universal Cup 参赛者
此题在收录至 Universal Cup 时将删除。因此,如果你要在 AtCoder 的结果用于 Universal Cup,建议优先做其他题目。
### 样例解释 1
对于第 $1$ 个测试用例,游戏可能的过程如下:
- 初始 $S$ 为 `(???`。
- あおばさん将第 $4$ 个字符的 `?` 替换为 `)`,$S$ 变为 `(??)`。
- ひろせさん将第 $2$ 个字符的 `?` 替换为 `)`,$S$ 变为 `()?)`。
- あおばさん将第 $3$ 个字符的 `?` 替换为 `(`,$S$ 变为 `()()`。
- $S$ 中没有 `?` 了,操作结束。$S$ 是一个正确的括号序列,所以あおばさん获胜。
对于第 $1$ 个测试用例,不管ひろせさん怎么操作,あおばさん都可以获胜。
# 数据范围
- $1 \leq T \leq 10^5$
- $2 \leq |S| \leq 10^6$
- $S$ 只包含 `(`、`)` 和 `?`,且长度为偶数
- 所有测试用例中 $|S|$ 的总和不超过 $10^6$
- $T$ 是整数
由 ChatGPT 5 翻译