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 翻译