4378: A. 能量传输 (divide.c/cpp/pas)
内存限制:512 MB
时间限制:2.000 S
评测方式:文本比较
命题人:
提交:4
解决:1
题目描述
## Problem A. 能量传输 (divide.c/cpp/pas)
在一座高科技城市中,Luke 负责管理城市中的能量传输系统。城市中有一排能量节点,每个节点上储存了少量的能量,表示为 0 或 1 单位。
由于城市计划升级,所有节点中的能量都需要调整,使得每个节点的能量都能整除一个特定的数 $k$(其中 $k > 1$)。Luke 可以通过操作将能量从一个节点传输到相邻的节点,但每次只能移动 1 单位的能量。
现在,Luke 的目标是以最少的操作次数完成这个任务,确保所有节点的能量都满足被 $k$ 整除的要求。你能帮助他计算出所需的最小操作次数吗?
输入
### Input
一个整数 $n$ 表示能量节点的数量。
接下来一行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ,表示每个节点中初始的能量数量。
输出
### Output
输出一个整数,表示完成目标所需的最小操作次数。
样例输入 复制
5
1 0 1 0 1
样例输出 复制
4
提示
### Examples
#### 【样例 1 输入】
```input
5
1 0 1 0 1
```
#### 【样例 1 输出】
```output
4
```
#### 样例解释 1
最优解为将 $a_1$ 的能量移到 $a_2$ 再移到 $a_3$。
将 $a_5$ 的能量移到 $a_4$ 再移到 $a_3$。
得到 $0,0,4,0,0$,均为 $4$ 的倍数。
#### 【样例 2 输入】
```input
10
1 0 1 0 1 0 0 1 0 1
```
#### 【样例 2 输出】
```output
14
```
#### 【样例 3 输入】
见下发文件。
#### 【样例 3 输出】
见下发文件。
### Notes
对于 $60\%$ 的数据,$1 \le n \le 10$
对于 $100\%$ 的数据,$1 \le n \le 10^5$,$0 \le a_i \le 1$