AT_hbpc_4 1+1
题目描述
在手部游戏中,有一种叫做[数字增加游戏](http://ja.wikipedia.org/wiki/%E6%89%8B%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E9%81%8A%E3%81%B3#.E6.95.B0.E5.AD.97.E3.82.92.E5.A2.97.E3.82.84.E3.81.99.E9.81.8A.E3.81.B3)的玩法。
这是两个人进行的游戏,首先,双方各自伸出双手的食指并相互展示。
然后,轮流用自己的右手或左手去选择对方的任意一只手,并增加对方手上的数字。
本题要求你求出在双方都采取最优策略时,这个游戏的胜负情况。输入格式如下,所有给定的数均为整数。
> $ n $ $ m $ $ r $
分别表示以下规则下的要素状态数 $ n $,最大分割次数 $ m $,加法规则 $ r $。
- 状态用 $ (x, y) $ 表示,$ x $、$ y $ 称为“要素”。
- 初始状态时,先手和后手均为 $ (1, 1) $。
- 每回合可以采取的“行动”有“选择”或“分割”两种。
- 先手和后手轮流行动,谁先变成 $ (0, 0) $ 就输。
- 选择:选择自己一个不为 $ 0 $ 的要素 $ x $ 和对方一个不为 $ 0 $ 的要素 $ y $,将 $ x $ 加到对方的 $ y $ 上,变为 $ x+y $。此时,应用以下两种加法规则 $ r $ 之一。
- 加法规则 $ 0 $:若 $ x+y \geq n $,则变为 $ 0 $。
- 加法规则 $ 1 $:若 $ x+y \geq n $,则变为 $ x+y-n $。
- 分割:当一方的某个要素为 $ 0 $,且另一个要素 $ k \geq 2 $ 时,可以进行“分割”操作。选择自然数 $ a, b $,使得 $ a+b=k $,且 $ a \geq 1 $,$ b \geq 1 $,将状态变为 $ (a, b) $。
- 分割最多可以进行 $ m $ 次。
- $ 2 \leq n \leq 16 $
- $ 0 \leq m \leq 2 $
- $ 0 \leq r \leq 1 $
如果存在可以无限进行下去的行动流程,则输出 `Infinite`。此时,先手和后手可以合作使得游戏无限进行。
如果不存在,则当先手和后手按照以下标准选择行动时,求出游戏的结果以及游戏在第几回合结束。
- 如果存在能让自己获胜的行动,则选择该行动;若有多个获胜行动,则选择能使游戏最短结束的行动。
- 如果只有会导致自己失败的行动,则选择能使游戏最晚结束的行动。
```
2 0 0
```
```
First
3
```
```
4 0 1
```
```
Infinite
```
输入格式
输入包含一行,包含三个整数 $ n, m, r $,含义如上所述。
输出格式
如果存在无限行动流程,输出一行 `Infinite`。
否则,第一行输出先手或后手的胜者,若先手胜则输出 `First`,后手胜则输出 `Second`。
第二行输出游戏在第几回合结束。
说明/提示
无。
由 ChatGPT 4.1 翻译