已结束 GESP欢乐赛 #9

A1483 | 数列乘积变1术

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

给出一个长度为 $n$ 的序列,每次花费1的代价可以进行以下操作当中的一个:
1. 让这个序列的任意一个数减 $1$
2. 让这个序列的任意一个数加 $1$

求将这个序列的乘积变为1的最小花费(即$a_1*a_2*a_3*...*a_n=1$)。

输入格式

第一行一个整数 $n(1 \leq n \leq 100000)$,表示序列的长度。

第二行 $n$ 个整数,第 $i$ 个数$a_i (-10^9 \leq a_i \leq 10^9)$ - 表示序列的第 $i$ 个数的大小。

输出格式

将序列的所有数的乘积变为1(即$a_1*a_2*a_3*...*a_n=1$)的最小花费。

输入输出样例

输入 #1
2
-1 1
输出 #1
2
输入 #2
4
0 0 0 0
输出 #2
4
输入 #3
5
-5 -3 5 3 0
输出 #3
13
C++ 编辑器
输入
输出