#XMOJ11697. 能量校准

能量校准

说明

时间限制:1 Sec 内存限制:256 MB 输入文件product.in 输出文件product.out

银河帝国首都星赞恩星的工程师小明正在负责一条关键贸易航线的能量节点维护。这条航线上有 $N$ 个并排的能量中继器,每个中继器都有一个当前的能级读数,可以是正数、负数或零。

为了确保航线安全,联邦规定:整条航线的总安全系数,等于所有中继器能级读数的乘积。只有当这个总安全系数精确等于 $0$ 时,航线才能被判定为“稳定”并允许通行。

小明有一种标准校准工具,每次操作可以选择任意一个中继器,将其能级读数增加 $1$ 或减少 $1$。他可以对同一个中继器进行多次操作。

现在,请你帮助小明计算:最少需要进行多少次这样的校准操作,才能使整条航线的总安全系数(即所有读数的乘积)变为 $0$?

输入格式

第一行为一个整数 $N$,表示中继器的数量。

第二行为空格分隔的 $N$ 个整数 $A_1$、$A_2$、……、$A_N$,表示每个中继器当前的能级读数。

输出格式

输出一个整数,表示达到目标所需的最少操作次数。

样例

样例 1

3
2 -6 5

2

样例说明:

初始乘积为 2×(6)×5=602 \times (-6) \times 5 = -60。最优策略是选择能级为 22 的中继器,将其减少 22 次,变为 00。此时乘积为 00,总操作数为 22。也可以将 6-6 增加 66 次变为 00,但那样需要 66 步,不是最少。

样例 2

1
-3

3

样例 3

5
0 -1 0 1 0

0

样例说明:

数组中已经存在至少一个 00,因此乘积已经是 00,无需任何操作。

数据范围

$1 \le N \le 10^5$

$-10^5 \le A_i \le 10^5$