CF305E Playing with String

题目描述

有两个人玩如下的字符串游戏。最开始,玩家们有一个字符串 $s$。双方轮流进行操作,无法操作的一方判负。 游戏开始前,字符串被写在一张纸上,每个字母占一个格子。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF305E/e3dc20c8c09e1180ec4786b230762f8e7c79cfda.png) 上图是 $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|}$(如果非空)。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF305E/4da2b2c4651d8ec70c1d3e569c51588926a9324c.png) 上图是对字符串 $s = "abacaba"$ 在位置 $i=4$ 执行操作的示意图。 如果双方都采取最优策略,你需要输出最终胜者是谁。如果先手可以获胜,输出第一步最优操作的位置(如果有多个选择,输出最小的 $i$)。

输入格式

第一行一个字符串 $s$($1 \leq |s| \leq 5000$)。保证 $s$ 只包含小写英文字母。

输出格式

如果次手可以获胜,输出一行 "Second"。 否则,第一行输出 "First",第二行输出先手能获胜时最优操作的位置 $i$($1 \leq i \leq |s|$),如有多个选择输出最小的 $i$。

说明/提示

在第一个样例中,先手有多种获胜操作,但最小的是选择第 $2$ 个字符。 在第二个样例中,先手无法进行任何操作。 由 ChatGPT 5 翻译