CF1206B.Make Product Equal One

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Make Product Equal One

题目描述

给你一个有 nn 个数的数组。你可以用 xx(x为任意正整数) 的代价将数组中的任意一个数增加或减少 xx ,你可以重复多次此操作。现在需要你用若干次操作使得 a1a2...an=1a_1·a_2·...·a_n = 1 (数组的乘积为1)。

比如,当 n=3n=3 和数组为 [1,-3,0] 时,我们最少需要花费 33 的代价:用 22 的代价把 -33 增加到 -11 ,再用 11 的代价把 00 减少到 -11 ,数组就变成了 [1,-1,-1] ,然后 111=11·(-1)·(-1)=1

现在询问最少需要花费多少的代价使得数组的乘积为 11

输入格式

输入共两行。

第一行输入一个数 nn ,表示数组的数字个数。

第二行输入 nn 个数 aia_i ,表示该数组。

输出格式

输出一个数,表示使得数组的乘积为 11 的最少的花费。

说明/提示

1n1051\leq n\leq 10^5

109ai109-10^9\leq a_i\leq 10^9

样例

2
-1 1
2
4
0 0 0 0
4
5
-5 -3 5 3 0
13

在线编程 IDE

建议全屏模式获得最佳体验