AT_abc172_f.[ABC172F] Unfair Nim

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有 NN 堆石子,第 ii 堆有 AiA_i 个石子。

青木君和高桥君打算用这些石子玩如下游戏:

  • 从青木君开始,轮流进行如下操作:
    • 操作:选择一堆石子,从中取走至少 11 个石子。
  • 不能进行操作的一方判负。

在双方都采取最优策略的情况下,游戏的胜负仅由初始每堆石子的数量决定。

高桥君希望在游戏开始前,将第 11 堆中的 00 个以上且少于 A1A_1 个石子移动到第 22 堆,使得作为后手的高桥君能够必胜。

如果可以做到,请输出需要移动的最小石子数;否则输出 −1-1。

输入格式

输入通过标准输入给出,格式如下:

NN A1A_1 A2A_2 …\ldots ANA_N

输出格式

输出需要移动的最小石子数。如果无法做到,则输出 −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

说明/提示

限制条件

  • 2≤N≤3002 \leq N \leq 300
  • 1≤Ai≤10121 \leq A_i \leq 10^{12}

样例解释 1

如果不移动石子,青木君可以先从第 11 堆取走 22 个石子,无论高桥君之后如何操作,都会输。如果在游戏开始前从第 11 堆移动 11 个石子到第 22 堆,使得两堆分别为 4,44,4,那么高桥君可以通过合理操作必胜。

样例解释 2

不能将石子从第 22 堆移动到第 11 堆。

样例解释 3

不能将第 11 堆的所有石子都移动走。

样例解释 5

请注意防止溢出。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页