编程题
### 问题描述 Bob 和 Alice 最近在学习博弈论,为了学以致用,他们找来了一大堆的小饼干,并通过博弈的方式来吃掉这些小饼干。他们将找来的小饼干分成 $n$ 堆,每堆小饼干有 $a_i$ 个小饼干。他们轮流对这些饼干进行操作,操作规则如下: - 由 Alice 先手,每次从一堆小饼干中拿出 $k^m$ 个小饼干( $k$ 为奇数且 $m \geq 0$,且 $k^m$ 不能超出该堆小饼干的总数)。 - 当一方进行完操作后,如果已经没有剩余的小饼干,则该方获胜,赢得所有的小饼干。 Alice 和 Bob 都想赢得所有的小饼干,所以都会以最佳方法来取小饼干,请问他们之中谁能赢得所有的小饼干? ### 输入格式 第一行,输入两个正整数 $n$ $(1\leq n \leq 2 \times 10^6)$ , $k$ $(1 \leq k \leq 10^9)$ ,分别表示饼干的堆数和每次取出饼干的底数。 第二行,输入 $n$ 个整数,表示第 $i$ 堆小饼干有 $a_i$ 个小饼干。 ### 输出格式 输出一行,包含一个字符串,输出 Alice 和 Bob 之中获胜的那个人。 ### 样例输入 1 ``` 2 3 4 1 ``` ### 样例输出 1 ``` Alice ``` ### 样例输入 2 ``` 2 1 5 6 ``` ### 样例输出 2 ``` Bob ``` ### 样例说明 在第一个样例中,Alice 拿走第二堆饼干中的 $3$ $(k^0)$ 个饼干,此时剩余的饼干数分别为 $[1,1]$ ,此时,Bob 无论拿哪堆饼干都会使得剩下那堆饼干只有一个,Alice 只需要在下一轮拿走剩余的饼干即可获胜。 在第二个样例中,由于每次都只能取一个,且有 $11$ 个饼干,所以先手的人到最后一定会输掉比赛。
查看答案
赣ICP备20007335号-2