A. 传递能量(energy)

    Type: Default File IO: energy 2000ms 512MiB

传递能量(energy)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

传递能量(energy)

【题目描述】

有 nn 个小朋友围成一个圈,逆时针依次编号为 1,2,…,n1,2, \ldots, n 。第 ii 个小朋友初始有 eie_{i} 点能量。你可以让一个小朋友将能量传递给他右边的小朋友,但是能量在传递过程中会损耗一半。具体来说,你每一次操作可以让一个小朋友的能量值降低2(能量值始终不能为负数),然后让他右边的小朋友能量值增加1。 i(1<i<n)i(1<i<n) 号小朋友右边的小朋友是i+1i+1 号,nn 号小朋友右边的小朋友是1号。

现在问是否有可能让所有小朋友的能量值相等,如果可以,请输出最少操作次数;如果不行,请输出-1。

【输入格式】

从文件 energy.in 中读入数据。 本题输入文件有多组测试数据。 第一行一个正整数表示数据组数 T(T≤10)T(T \leq 10) 。 对于每组测试样例: 第一行一个正整数 nn 。 第二行 nn 个正整数 $a_{1}, a_{2}, \ldots a_{n}\left(1 \leq a_{i} \leq 10^{9}\right)$ 。 数据保证 ∑n≤2×105\sum n \leq 2 \times 10^{5} 。

【输出格式】

输出到文件 energy.out 中。 对于每组数据,输出一行答案。

【样例1输入】

3
2
1 1
3
1 3 2
4
2 1 2 6

【样例1输出】

0
-1
3

【样例2】 见下发文件的 energy/energy2.in 与 energy/energy2.ans。

【样例 3】 见下发文件的 energy/energy3.in 与 energy/energy3.ans。

【数据范围与提示】 对于100%的数据,T=10,∑n≤2×105T=10, \sum n \leq 2 \times 10^{5}

数据编号 nn 特殊性质
1 ~ 3 ≤5\leq 5 A
4 ~ 6 ≤200\leq 200
7 ~ 11
12 ~ 15 ≤2×105\leq 2 \times 10^{5} A
16 ~ 20

特殊性质 A:ai≤100a_{i} \leq 100 。

附加文件

NOIp 2026 模拟赛 11

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2026-10-28 7:40
End at
2026-10-28 12:10
Duration
4.5 hour(s)
Host
Partic.
24