#4778. Approximate Equalization

0

Approximate Equalization

Approximate Equalization

题目描述

给定长度为 NN 的整数序列:A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N)。 Takahashi 可以任意次(可能为零次、按任意顺序)执行以下两个操作。

选择一个整数 ii 满足 1≤i≤N−11\leq i\leq N-1,将 AiA_i 减少 11 并将 Ai+1A_{i+1} 增加 11。 选择一个整数 ii 满足 1≤i≤N−11\leq i\leq N-1,将 AiA_i 增加 11 并将 Ai+1A_{i+1} 减少 11。

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

∣Ai−Aj∣≤1\lvert A_i-A_j\rvert\leq 1 对于任意在 11 到 NN(含)之间的整数对 (i,j)(i,j) 成立。

输入格式

输入由标准输入给出,格式如下: NN A1A_1 A2A_2 …\ldots ANA_N

输出格式

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

3
2 7 6
4
3
-2 -5 -2
2
5
1 1 1 1 -7
13

提示

2≤N≤50002 \leq N \leq 5000 ∣Ai∣≤109\lvert A_i \rvert \leq 10^9 所有输入值均为整数。你可以通过如下四次操作使 AA 满足该条件。

选择 i=1i=1,将 A1A_1 增加 11 并将 A2A_2 减少 11,得到 A=(3,6,6)A=(3,6,6)。 选择 i=1i=1,将 A1A_1 增加 11 并将 A2A_2 减少 11,得到 A=(4,5,6)A=(4,5,6)。 选择 i=2i=2,将 A2A_2 增加 11 并将 A3A_3 减少 11,得到 A=(4,6,5)A=(4,6,5)。 选择 i=1i=1,将 A1A_1 增加 11 并将 A2A_2 减少 11,得到 A=(5,5,5)A=(5,5,5)。

这是所需的最小操作次数,因此输出 44。
你可以通过如下两次操作使 AA 满足该条件:

选择 i=1i=1,将 A1A_1 减少 11 并将 A2A_2 增加 11,得到 A=(−3,−4,−2)A=(-3,-4,-2)。 选择 i=2i=2,将 A2A_2 增加 11 并将 A3A_3 减少 11,得到 A=(−3,−3,−3)A=(-3,-3,-3)。

这是所需的最小操作次数,因此输出 22。
通过适当执行操作,使用 1313 次操作你可以使 A=(0,0,−1,−1,−1)A=(0,0,-1,-1,-1),它满足题目中的条件。 无法在 1212 次或更少操作下使其满足,因此输出 1313。

标签: AtCoder|abc307G

来源

AtCoder|abc307G