#CJM13A. [J模13] 能量传输 (divide)

[J模13] 能量传输 (divide)

题目描述

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

由于城市计划升级,Luke 需要自行选定一个整数 kk(其中 k>1k > 1),并通过操作调整能量,使得每个节点的能量都能被 kk 整除。注意操作不改变能量总和,因此 kk 必须整除所有节点的能量之和,Luke 会选择使操作次数最少的满足条件的 kk。Luke 可以通过操作将能量从一个节点传输到相邻的节点,但每次只能移动 1 单位的能量。

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

输入格式

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

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

输出格式

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

5
1 0 1 0 1
4
10
1 0 1 0 1 0 0 1 0 1
14

数据范围

样例解释 1

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

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

得到 0,0,3,0,00,0,3,0,0,均为 33 的倍数。

对于 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

难度 未评定
通过率 —
尝试 0
通过 0
ID
3851
类型
传统题
Time Limit
1000ms
Memory Limit
256MiB
上传者