B. 由积至一

    传统题 1000ms 256MiB

由积至一

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

由积至一

题目描述

给定一个包含 nn 个整数的数组 a=[a1,a2,,an]a = [a_1, a_2, \dots, a_n]

你可以对数组中的任意元素进行操作。一次操作 定义为:

  • 选定一个下标 ii (1in1 \le i \le n);
  • 支付 11 枚金币,将 aia_i 的值增加 11 或 减少 11(即 aiai+1a_i \leftarrow a_i + 1aiai1a_i \leftarrow a_i - 1)。

你可以对同一个元素进行多次操作。你的目标是:花费最少的金币,使得数组中所有元素的 乘积 恰好等于 11

请计算并输出达成该目标所需的 最少金币数量

输入格式

第一行包含一个整数 nn (1n1051 \le n \le 10^5),表示数组的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n (109ai109-10^9 \le a_i \le 10^9)。

输出格式

输出一个整数,表示最少需要的金币数量。

输入输出样例 #1

输入 #1

4
2 -3 0 1

输出 #1

4

输入输出样例 #2

输入 #2

4
-1 -1 -1 -1

输出 #2

0

输入输出样例 #3

输入 #3

3
-5 -3 -5

输出 #3

12

说明/提示

样例 1 解释:

一种最优的操作方案如下:

  • a1=21a_1 = 2 \to 1(花费 1)

  • a2=31a_2 = -3 \to -1(花费 2)

  • a3=01a_3 = 0 \to -1(花费 1)

  • a4=11a_4 = 1 \to 1(花费 0)

    最终数组为 [1,1,1,1][1, -1, -1, 1],乘积为 1×(1)×(1)×1=11 \times (-1) \times (-1) \times 1 = 1

    总花费为 1+2+1+0=41 + 2 + 1 + 0 = 4

样例 3 解释:

首先将所有数变为距离最近的 ±1\pm 1

  • 51-5 \to -1(花费 4)

  • 31-3 \to -1(花费 2)

  • 51-5 \to -1(花费 4)

    此时数组为 [1,1,1][-1, -1, -1],总花费 1010,但乘积为 1-1

    由于原数组中没有 00 可供调整符号,我们需要额外花费 22 金币将其中一个 1-1 变为 11(或者在最初就花费 66 金币将 5-5 变为 11)。

    总花费为 10+2=1210 + 2 = 12

【睿爸信奥】入门组算法周赛(20260201)

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-2-1 0:00
结束于
2026-2-7 6:00
持续时间
3.5 小时
主持人
参赛人数
11