atcoder#ABC172F. [ABC172F] Unfair Nim
[ABC172F] Unfair Nim
题目描述
石の山が 個あり、 番目の山には 個の石があります。
これを使って青木君と高橋君が次のようなゲームをしようとしています。
- 青木君から交互に、次の操作を繰り返す
- 操作:石の山を つ選び、そこから 個以上の石を取り除く
- 先に操作ができなくなった方の負け
このゲームは、両者が最適に行動する場合、ゲーム開始時の各山の石の個数のみによって、先手必勝か後手必勝かが決まります。
そこで高橋君は、ゲームを始める前に、 番目の山から 個以上 個未満の石を 番目の山に移すことで、後手の高橋君が必勝となるようにしようとしています。
そのようなことが可能なら移動する石の個数の最小値を、不可能ならかわりに -1
を出力してください。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
移動する石の個数の最小値を出力せよ。不可能ならかわりに -1
を出力せよ。
题目大意
有 堆石子,第 堆石子有 个。
两人进行取石子游戏,两人轮流操作,每人每次可以从任意一堆中取出任意数量石子,当有一方无法取出任何石子时,该方告负。
在游戏开始前,从第 堆中取出一些石子放到第 堆(可以不取,但不能全取)来构造一个后手必胜的局面。
求出最少要从第一堆取多少放到第二堆。若无解,输出 -1
。
2
5 3
1
2
3 5
-1
3
1 1 2
-1
8
10 9 8 7 6 5 4 3
3
3
4294967297 8589934593 12884901890
1
提示
制約
Sample Explanation 1
石の移動をしなかった場合、青木君が最初に 番目の山から 個の石を取り除くと、高橋君はその後どのように行動しても負けてしまいます。 ゲームを始める前に 番目の山から 個の石を移動して、石の個数を とした場合、適切な行動を取ることで、高橋君は必ず勝つことができます。
Sample Explanation 2
番目の山から 番目の山へ石を移すことはできません。
Sample Explanation 3
番目の山のすべての石を移すことはできません。
Sample Explanation 5
オーバーフローに注意してください。