#aBC307G. [ABC307G] Approximate Equalization

[ABC307G] Approximate Equalization

AT_abc307_g [ABC307G] Approximate Equalization

题目描述

给定一个长度为 NN 的整数序列 A=(A1,A2,,AN)A=(A_1,A_2,\ldots,A_N)

高桥君可以无限次(也可以不进行)重复以下两种操作中的任意一种:

  • 选择满足 1iN11\leq i\leq N-1 的整数 ii,将 AiA_i11,将 Ai+1A_{i+1}11
  • 选择满足 1iN11\leq i\leq N-1 的整数 ii,将 AiA_i11,将 Ai+1A_{i+1}11

请你求出,为了使数列 AA 满足以下条件,所需操作次数的最小值:

  • 对于任意 1i,jN1\leq i,j\leq N,都有 AiAj1|A_i-A_j|\leq 1

输入格式

输入以如下格式从标准输入读入:

NN A1A_1 A2A_2 \ldots ANA_N

输出格式

请输出使数列 AA 满足题目条件所需的最小操作次数。

输入输出样例 #1

输入 #1

3
2 7 6

输出 #1

4

输入输出样例 #2

输入 #2

3
-2 -5 -2

输出 #2

2

输入输出样例 #3

输入 #3

5
1 1 1 1 -7

输出 #3

13

说明/提示

限制条件

  • 2N50002\leq N\leq 5000
  • Ai109|A_i|\leq 10^9
  • 输入均为整数

样例解释 1

可以通过如下方式在 44 次操作后使 AA 满足条件:

  • 选择 i=1i=1,将 A1A_111A2A_211,此时 A=(3,6,6)A=(3,6,6)
  • 选择 i=1i=1,将 A1A_111A2A_211,此时 A=(4,5,6)A=(4,5,6)
  • 选择 i=2i=2,将 A2A_211A3A_311,此时 A=(4,6,5)A=(4,6,5)
  • 选择 i=1i=1,将 A1A_111A2A_211,此时 A=(5,5,5)A=(5,5,5)

此时操作次数最小,因此输出 44

样例解释 2

可以通过如下方式在 22 次操作后使 AA 满足条件:

  • 选择 i=1i=1,将 A1A_111A2A_211,此时 A=(3,4,2)A=(-3,-4,-2)
  • 选择 i=2i=2,将 A2A_211A3A_311,此时 A=(3,3,3)A=(-3,-3,-3)

此时操作次数最小,因此输出 22

样例解释 3

通过合理操作,在 1313 次操作后可以得到 A=(0,0,1,1,1)A=(0,0,-1,-1,-1),满足题目条件。用 1212 次或更少的操作无法满足条件,因此输出 1313

由 ChatGPT 4.1 翻译