AT_abc307_g [ABC307G] Approximate Equalization
题目描述
给定一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\ldots,A_N)$。
高桥君可以无限次(也可以不进行)重复以下两种操作中的任意一种:
- 选择满足 $1\leq i\leq N-1$ 的整数 $i$,将 $A_i$ 减 $1$,将 $A_{i+1}$ 加 $1$。
- 选择满足 $1\leq i\leq N-1$ 的整数 $i$,将 $A_i$ 加 $1$,将 $A_{i+1}$ 减 $1$。
请你求出,为了使数列 $A$ 满足以下条件,所需操作次数的最小值:
- 对于任意 $1\leq i,j\leq N$,都有 $|A_i-A_j|\leq 1$。
输入格式
输入以如下格式从标准输入读入:
> $N$ $A_1$ $A_2$ $\ldots$ $A_N$
输出格式
请输出使数列 $A$ 满足题目条件所需的最小操作次数。
说明/提示
## 限制条件
- $2\leq N\leq 5000$
- $|A_i|\leq 10^9$
- 输入均为整数
## 样例解释 1
可以通过如下方式在 $4$ 次操作后使 $A$ 满足条件:
- 选择 $i=1$,将 $A_1$ 加 $1$,$A_2$ 减 $1$,此时 $A=(3,6,6)$。
- 选择 $i=1$,将 $A_1$ 加 $1$,$A_2$ 减 $1$,此时 $A=(4,5,6)$。
- 选择 $i=2$,将 $A_2$ 加 $1$,$A_3$ 减 $1$,此时 $A=(4,6,5)$。
- 选择 $i=1$,将 $A_1$ 加 $1$,$A_2$ 减 $1$,此时 $A=(5,5,5)$。
此时操作次数最小,因此输出 $4$。
## 样例解释 2
可以通过如下方式在 $2$ 次操作后使 $A$ 满足条件:
- 选择 $i=1$,将 $A_1$ 减 $1$,$A_2$ 加 $1$,此时 $A=(-3,-4,-2)$。
- 选择 $i=2$,将 $A_2$ 加 $1$,$A_3$ 减 $1$,此时 $A=(-3,-3,-3)$。
此时操作次数最小,因此输出 $2$。
## 样例解释 3
通过合理操作,在 $13$ 次操作后可以得到 $A=(0,0,-1,-1,-1)$,满足题目条件。用 $12$ 次或更少的操作无法满足条件,因此输出 $13$。
由 ChatGPT 4.1 翻译