传递能量(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)
【题目描述】
有 个小朋友围成一个圈,逆时针依次编号为 。第 个小朋友初始有 点能量。你可以让一个小朋友将能量传递给他右边的小朋友,但是能量在传递过程中会损耗一半。具体来说,你每一次操作可以让一个小朋友的能量值降低2(能量值始终不能为负数),然后让他右边的小朋友能量值增加1。 号小朋友右边的小朋友是 号, 号小朋友右边的小朋友是1号。
现在问是否有可能让所有小朋友的能量值相等,如果可以,请输出最少操作次数;如果不行,请输出-1。
【输入格式】
从文件 energy.in 中读入数据。 本题输入文件有多组测试数据。 第一行一个正整数表示数据组数 。 对于每组测试样例: 第一行一个正整数 。 第二行 个正整数 $a_{1}, a_{2}, \ldots a_{n}\left(1 \leq a_{i} \leq 10^{9}\right)$ 。 数据保证 。
【输出格式】
输出到文件 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%的数据,
| 数据编号 | 特殊性质 | |
|---|---|---|
| 1 ~ 3 | A | |
| 4 ~ 6 | ||
| 7 ~ 11 | ||
| 12 ~ 15 | A | |
| 16 ~ 20 |
特殊性质 A: 。
NOIp 2026 模拟赛 11
- 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