AT_arc169_d.[ARC169D] Add to Make a Permutation

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 NN 的整数序列 A=(A1,A2,⋯ ,AN)A=(A_1,A_2,\cdots,A_N)。AA 的每个元素都是 00 到 N−1N-1 之间的整数。

你可以进行如下操作任意次(包括 00 次):

  • 从 AA 中恰好选出 MM 个元素,将选中的每个元素的值加 11。如果加 11 后某个元素的值变成了 NN,则将其值变为 00。

你的目标是将 AA 变成 $ (0,1,\cdots,N-1) $ 的一个排列。请判断目标是否可以达成,如果可以,输出所需的最小操作次数;否则输出 −1-1。

输入格式

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

NN MM A1A_1 A2A_2 ⋯\cdots ANA_N

输出格式

如果无法达成目标,输出 −1-1。如果可以,输出所需的最小操作次数。

输入输出样例

  • 输入#1

    3 2
    0 1 1

    输出#1

    2
  • 输入#2

    5 2
    0 4 2 3 1

    输出#2

    0
  • 输入#3

    4 2
    0 0 1 2

    输出#3

    -1
  • 输入#4

    20 15
    5 14 18 0 8 5 0 10 6 5 11 2 10 10 17 9 8 14 4 4

    输出#4

    10

说明/提示

限制条件

  • 2≤N≤2500002 \leq N \leq 250000
  • 1≤M≤N−11 \leq M \leq N-1
  • 0≤Ai≤N−10 \leq A_i \leq N-1
  • 所有输入的值均为整数。

样例解释 1

可以如下进行操作,在 22 次操作内达成目标。

  • 初始状态:A=(0,1,1)A=(0,1,1)
  • 第 11 次操作:选择 A1,A2A_1,A_2,操作后 A=(1,2,1)A=(1,2,1)。
  • 第 22 次操作:选择 A2,A3A_2,A_3,操作后 A=(1,0,2)A=(1,0,2)。

无法在少于 22 次操作内达成目标,因此答案为 22。

由 ChatGPT 4.1 翻译

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

首页