CF2032E Balanced
题目描述
给定一个长度为 $n$ 的循环数组 $a$,其中 $n$ 是奇数。每次操作,你可以进行如下操作:
- 选择一个下标 $1 \le i \le n$,将 $a_{i-1}$ 增加 $1$,$a_i$ 增加 $2$,$a_{i+1}$ 增加 $1$。由于这是一个循环数组,第一个元素的前一个元素是最后一个元素。
如果一个循环数组的所有元素都相等,则称其为平衡的。
请你找出一组操作序列,使得该循环数组变为平衡的,或者判断是否不可能实现。注意,你不需要最小化操作次数。
输入格式
每个测试点包含多个测试用例。第一行包含一个整数 $t$($1 \le t \le 2 \cdot 10^5$),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($1 \le n < 2 \cdot 10^5$,$n$ 为奇数),表示数组 $a$ 的长度。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^{6}$),表示数组 $a$ 的元素。
保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例:
- 如果无法将循环数组变为平衡,输出 $-1$。
- 否则,输出 $n$ 个整数 $v_1, v_2, \ldots, v_n$($0 \leq v_i \leq 10^{18}$),其中 $v_i$ 表示对下标 $i$ 进行了多少次操作。可以证明,如果存在解,则一定存在满足约束条件的解。如果有多组解,输出任意一组均可。
说明/提示
在第一个测试用例中:
- 对下标 $i=2$ 进行 $1$ 次操作后,数组 $a = [3, 3, 3]$。
在第二个测试用例中:
- 对下标 $i=1$ 进行 $2$ 次操作后,数组 $a = [5, 4, 5]$。
- 对下标 $i=2$ 进行 $1$ 次操作后,数组 $a = [6, 6, 6]$。
在第三个测试用例中:
- 对下标 $i=1$ 进行 $2$ 次操作后,数组 $a = [5, 4, 1, 2, 3]$。
- 对下标 $i=3$ 进行 $3$ 次操作后,数组 $a = [5, 7, 7, 5, 3]$。
- 对下标 $i=5$ 进行 $2$ 次操作后,数组 $a = [7, 7, 7, 7, 7]$。
由 ChatGPT 4.1 翻译