AT_arc168_b [ARC168B] Arbitrary Nim
题目描述
有 $N$ 堆石子,第 $i$ 堆($1 \leq i \leq N$)有 $A_i$ 个石子。
你现在可以选择一个正整数 $k$。之后,Alice 和 Bob 会用这些石子堆进行如下游戏:
- 游戏由 Alice 先手,双方轮流进行操作。
- 每一回合,当前玩家选择一个非空的石子堆,从中取走任意数量的石子,数量不少于 $1$ 个且不多于 $k$ 个。
无法进行操作的一方判负,未被判负的一方获胜。
你需要选择一个正整数 $k$,使得 Alice 存在必胜策略。请判断是否存在这样的 $k$。如果存在,判断是否存在使 Alice 必胜的 $k$ 的最大值。如果最大值存在,请输出该最大值。
输入格式
输入以如下格式从标准输入读入:
> $N$ $A_1$ $A_2$ $\cdots$ $A_N$
输出格式
如果不存在使 Alice 必胜的 $k$,输出 $0$。
如果存在使 Alice 必胜的 $k$,但不存在最大值,输出 $-1$。
如果存在使 Alice 必胜的 $k$,且最大值存在,输出该最大值。
说明/提示
### 限制条件
- $1 \leq N \leq 250000$
- $1 \leq A_i \leq 10^9$
- 输入的所有值均为整数。
### 样例解释 1
例如,当 $k=2$ 时,Alice 存在必胜策略。若选择 $k \geq 3$,Alice 就没有必胜策略,因此答案为 $k=2$。
### 样例解释 2
例如,对于所有 $k=100,200,300,\cdots$,Alice 都存在必胜策略。因此不存在最大值,输出 $-1$。
### 样例解释 3
无论选择怎样的 $k$,Alice 都没有必胜策略。因此输出 $0$。
由 ChatGPT 4.1 翻译