CF305E Playing with String
题目描述
有两个人玩如下的字符串游戏。最开始,玩家们有一个字符串 $s$。双方轮流进行操作,无法操作的一方判负。
游戏开始前,字符串被写在一张纸上,每个字母占一个格子。

上图是 $s = "abacaba"$ 的初始状态示例。
玩家每一次的操作包括如下步骤:
1. 玩家选择一张当前可用的写有字符串的纸,记作 $t$。注意初始时只有一张纸。
2. 玩家在字符串 $t = t_1 t_2 \ldots t_{|t|}$ 中选择一个位置 $i$($1 \leq i \leq |t|$),使得存在正整数 $l$ 满足 $0 < i-l$, $i+l \leq |t|$ 并且对所有 $1\leq k\leq l$ 都有 $t_{i-k} = t_{i+k}$,即:
$$
t_{i-1} = t_{i+1},\ t_{i-2} = t_{i+2},\ \ldots,\ t_{i-l} = t_{i+l}
$$
3. 玩家剪掉选中的字符所在的格子。操作后,会得到三张新纸条:
- 第一张纸上写着 $t_1 t_2 \ldots t_{i-1}$(如果非空);
- 第二张纸上写着单个字符 $t_i$;
- 第三张纸上写着 $t_{i+1} t_{i+2} \ldots t_{|t|}$(如果非空)。

上图是对字符串 $s = "abacaba"$ 在位置 $i=4$ 执行操作的示意图。
如果双方都采取最优策略,你需要输出最终胜者是谁。如果先手可以获胜,输出第一步最优操作的位置(如果有多个选择,输出最小的 $i$)。
输入格式
第一行一个字符串 $s$($1 \leq |s| \leq 5000$)。保证 $s$ 只包含小写英文字母。
输出格式
如果次手可以获胜,输出一行 "Second"。
否则,第一行输出 "First",第二行输出先手能获胜时最优操作的位置 $i$($1 \leq i \leq |s|$),如有多个选择输出最小的 $i$。
说明/提示
在第一个样例中,先手有多种获胜操作,但最小的是选择第 $2$ 个字符。
在第二个样例中,先手无法进行任何操作。
由 ChatGPT 5 翻译