#J00121. Problem A. 能量传输

0

Problem A. 能量传输

Problem A. 能量传输 (divide.c/cpp/pas)

Input file: divide.in
Output file: divide.out
Time limit: 1 second
Memory limit: 256 megabytes

在一座高科技城市中,Luke 负责管理城市中的能量传输系统。城市中有一排能量节点,每个节点上储存了少量的能量,表示为 0 或 1 单位。

由于城市计划升级,所有节点中的能量都需要调整,使得每个节点的能量都能整除一个特定的数 kk(其中 k>1k > 1)。Luke 可以通过操作将能量从一个节点传输到相邻的节点,但每次只能移动 1 单位的能量。

现在,Luke 的目标是以最少的操作次数完成这个任务,确保所有节点的能量都满足被 kk 整除的要求。你能帮助他计算出所需的最小操作次数吗?

Input

一个整数 nn 表示能量节点的数量。

接下来一行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n ,表示每个节点中初始的能量数量。

Output

输出一个整数,表示完成目标所需的最小操作次数。

Examples

【样例 1 输入】

5
1 0 1 0 1

【样例 1 输出】

4

样例解释 1

最优解为将 a1a_1 的能量移到 a2a_2 再移到 a3a_3。

将 a5a_5 的能量移到 a4a_4 再移到 a3a_3。

得到 0,0,4,0,00,0,4,0,0,均为 44 的倍数。

【样例 2 输入】

10
1 0 1 0 1 0 0 1 0 1

【样例 2 输出】

14

【样例 3 输入】

见下发文件。

【样例 3 输出】

见下发文件。

Notes

对于 60%60\% 的数据,1≤n≤101 \le n \le 10

对于 100%100\% 的数据,1≤n≤1051 \le n \le 10^5,0≤ai≤10 \le a_i \le 1