A. 糖果分装

    传统题 1000ms 512MiB
显示设置

糖果分装

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

糖果分装

题目背景

幼儿园的 nn 个小朋友排成一排坐在长桌前,每人面前放着一个盒子,盒子里装着若干颗糖。保育员希望每个盒子里的糖果数量都一样多,可是她只能让小朋友把糖果递给相邻的伙伴。

题目描述

nn 个盒子从左到右排成一排,第 ii 个盒子里有 aia_i 颗糖。

保育员的一次操作是这样的:选择两个相邻的盒子,把其中一个盒子里的任意多颗糖(可以是 00 颗)搬到另一个盒子里。一次操作的代价等于被搬动的糖果颗数。

保育员希望通过若干次操作,使每个盒子里的糖果数量都相同。请你求出所需的最小总代价;如果无论如何都无法做到,输出 −1-1。

糖果只能在相邻盒子之间传递,中途不能被临时放在别的地方。同一个盒子可以参与多次操作。

输入格式

从标准输入读入数据。

第一行一个整数 nn,表示盒子的个数。

第二行 nn 个整数 a1,a2,…,ana_1,a_2,\dots,a_n,依次表示每个盒子里初始的糖果数量。

输出格式

输出到标准输出。

一行一个整数,表示最小总代价;若无法做到,输出 −1-1。

样例 1 输入

3
1 2 3

样例 1 输出

2

样例 1 解释

目标状态是每盒 22 颗。把第 11 盒的 11 颗糖搬到第 22 盒,代价为 11;再把第 33 盒的 11 颗糖搬到第 22 盒,代价为 11。总代价为 22,并且无法更小。

样例 2 输入

4
5 0 0 3

样例 2 输出

5

样例 2 解释

目标状态是每盒 22 颗。一种最优方案是:第 11 盒先搬 22 颗到第 22 盒(代价 22),第 33 盒没有糖,第 11 盒再搬 11 颗给第 22 盒、第 22 盒搬 11 颗给第 33 盒(代价 22),最后第 44 盒搬 11 颗到第 33 盒(代价 11),总代价为 55。

样例 3 输入

3
1 2 4

样例 3 输出

-1

样例 3 解释

糖果总数是 77,不能被 33 个盒子平分,因此无法让每个盒子里的糖果数量都相同。

数据范围

测试点编号 nn aia_i 特殊性质
1∼81\sim 8 ≤10\le 10 无
9∼129\sim 12 ≤106\le 10^6 ≤109\le 10^9 A
13∼1613\sim 16 B
17∼2417\sim 24 无

特殊性质 A:所有 aia_i 都相等。

特殊性质 B:保证 ∑i=1nai\sum_{i=1}^{n} a_i 是 nn 的倍数。

提交说明

本题使用标准输入输出。程序应从标准输入读入数据,并将答案输出到标准输出。

CSP-S 复赛模拟 · 第一套

未参加
状态
已结束
规则
OI
题目
4
开始于
2026-10-1 14:30
结束于
2026-10-1 18:30
持续时间
4 小时
主持人
参赛人数
0