给定一个长度为 $n$ 的整数序列 $a_1, a_2, \dots, a_n$,将其划分为 $k$ 个连续的非空子数组,使得每个元素恰好属于一个子数组。设 $s_i$ 为从左往右第 $i$ 个子数组中元素的和,对于每个 $1 \le k \le n$,计算以下表达式的最大值:
$$\sum_{i=1}^{k} i \times s_i$$
更正式地说,对于每个 $1 \le k \le n$,令 $r_0 = 0$ 且 $r_k = n$,你需要找到 $(k-1)$ 个整数 $r_1, r_2, \dots, r_{k-1}$,满足 $r_0 < r_1 < r_2 < \dots < r_{k-1} < r_k$,并最大化:
$$\sum_{i=1}^{k} i \times \left( \sum_{j=r_{i-1}+1}^{r_i} a_j \right)$$
输入格式
输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。对于每组测试数据:
第一行包含一个整数 $n$ ($1 \le n \le 5 \times 10^5$),表示序列的长度。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ($-10^6 \le a_i \le 10^6$),表示该序列。
保证所有测试数据的 $n$ 之和不超过 $5 \times 10^5$。
输出格式
对于每组测试数据,输出一行,包含 $n$ 个整数 $v_1, v_2, \dots, v_n$,并用空格隔开,其中 $v_i$ 是 $k=i$ 时的答案。
样例
样例输入 1
2 6 1 3 -4 5 -1 -2 1 100
样例输出 1
2 4 5 3 1 -2 100
说明
对于第一个样例测试数据,考虑 $k=3$,我们可以将序列划分为 $\{\{1\}, \{3, -4\}, \{5, -1, -2\}\}$。 答案为 $1 \times 1 + 2 \times (3 - 4) + 3 \times (5 - 1 - 2) = 5$。