#abc307g. [abc307_g]Approximate Equalization

[abc307_g]Approximate Equalization

题目描述

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

高桥可以任意次数(可能为零次)以任意顺序执行以下两种操作之一:

  • 选择一个整数 ii,满足 1leqileqN11\\leq i\\leq N-1 ,将 AiA_i11 并将 Ai+1A_{i+1}11
  • 选择一个整数 ii,满足 1leqileqN11\\leq i\\leq N-1 ,将 AiA_i11 并将 Ai+1A_{i+1}11

找出使序列 AA 满足以下条件所需的最小操作次数:

  • 对于介于 11NN 之间的任意整数对 (i,j)(i,j),都满足 lvertAiAjrvertleq1\\lvert A_i-A_j\\rvert\\leq 1

约束条件

  • 2leqNleq50002 \\leq N \\leq 5000
  • lvertAirvertleq109\\lvert A_i \\rvert \\leq 10^9
  • 所有输入值均为整数。

输入

输入数据从标准输入中获取,格式如下:

NN A1A_1 A2A_2 ldots\\ldots ANA_N

输出

打印一行,其中包含使序列 AA 满足问题描述中条件所需的最小操作次数。


示例输入 1

3
2 7 6

示例输出 1

4

您可以通过以下四个操作使 AA 满足条件。

  • 选择 i=1i=1,将 A1A_111 并将 A2A_211,得到 A=(3,6,6)A=(3,6,6)
  • 选择 i=1i=1,将 A1A_111 并将 A2A_211,得到 A=(4,5,6)A=(4,5,6)
  • 选择 i=2i=2,将 A2A_211 并将 A3A_311,得到 A=(4,6,5)A=(4,6,5)
  • 选择 i=1i=1,将 A1A_111 并将 A2A_211,得到 A=(5,5,5)A=(5,5,5)

这是所需的最小操作次数,因此打印 44


示例输入 2

3
-2 -5 -2

示例输出 2

2

您可以通过以下两个操作使 AA 满足条件:

  • 选择 i=1i=1,将 A1A_111 并将 A2A_211,得到 A=(3,4,2)A=(-3,-4,-2)
  • 选择 i=2i=2,将 A2A_211 并将 A3A_311,得到 A=(3,3,3)A=(-3,-3,-3)

这是所需的最小操作次数,因此打印 22


示例输入 3

5
1 1 1 1 -7

示例输出 3

13

通过适当执行操作,您可以进行 1313 次操作来使 A=(0,0,1,1,1)A=(0,0,-1,-1,-1),从而满足问题描述中的条件。不可能用 1212 次或更少的操作满足条件,因此打印 1313