#abc172f. [abc172_f]Unfair Nim
[abc172_f]Unfair Nim
题目描述
有 堆石头。第 堆有 个石头。
青木和高桥即将用它们来玩以下游戏:
- 从青木开始,两个玩家交替执行以下操作:
- 操作:选择一堆石头,并从中取出一个或多个石头。
- 当一个玩家无法执行操作时,他失败,另一个玩家获胜。
当两位玩家采取最优策略时,这个游戏有两种可能性:先行动的玩家总是获胜,或者后行动的玩家总是获胜,这只取决于每堆石头的初始数量。
在这种情况下,尝试保证后行动的高桥在游戏开始之前将至少 个且最多 个石头从第 堆移到第 堆。
如果这是可能的,打印移动的最小石头数量以确保他获胜;否则,打印 -1
。
约束条件
输入
输入以以下格式从标准输入给出:
输出
打印移动的最小石头数量以确保高桥获胜;否则,打印 -1
。
示例输入1
2
5 3
示例输出1
1
如果不移动石头,如果青木首先从第 堆中取走 个石头,高桥无论如何都无法获胜。
如果高桥在游戏开始之前将 个石头从第 堆移到第 堆,使得两堆都有 个石头,高桥可以通过正确选择行动而始终获胜。
示例输入2
2
3 5
示例输出2
-1
不允许将石头从第 堆移动到第 堆。
示例输入3
3
1 1 2
示例输出3
-1
不允许将所有石头从第 堆移动。
示例输入4
8
10 9 8 7 6 5 4 3
示例输出4
3
示例输入5
3
4294967297 8589934593 12884901890
示例输出5
1
注意溢出问题。