U552155 J-C 序列分段

题目描述

给定长度为 $n$ 的序列 $a$,要求将 $a$ 分割成恰好 $k$ 段,每一段内的所有数字都求和,得到一个长度为 $k$ 的序列 $b$。 接着,最大化以下式子的和: $$ \sum\limits_{i=1}^k i\times b_i。 $$ 即:$b_1\times1+b_2\times 2+b_3 \times3+...+b_k\times k$。 更通俗的: 请最大化:“第一段的和乘 $1$,加上第二段的和乘 $2$,一直加到第 $k$ 段的和乘 $k$ ”。 现在,请你对每一个 $k\ (1 \leq k \leq n)$,都求出并回答上述式子的最大值吧。

输入格式

**本题有多组测试数据。** 输入的第一行包含一个正整数 $T$,表示数据组数。 接下来包含 $T$ 组数据,每组数据的格式如下: 第一行一个正整数 $n$,表示序列 $a$ 的长度。 第二行 $n$ 个整数 $a_1, a_2, \cdots,a_n$,表示序列 $a$。

输出格式

对于每组测试数据: 在单独的一行输出由空格分隔的 $n$ 个整数,其中第 $i$ 个整数表示:把数组分为 $i$ 段时,上述式子的最大值。

说明/提示

**【样例 1 解释】** 对于第一组测试数据,我们考虑 $k=3$ 的情况,可以把序列分为: $\{\{1\},\{3, -4\}, \{5, -1, -2\} \}$。 此时 $b=\{1, 3+(-4), (5+(-1)+(-2))\}=\{1,-1,2\}$。 而题目所求式子的值为:$1\times1+(-1)\times 2+2 \times3=5$。 因此第一组测试数据中,第三个数字的值是 $5$。 (可以证明,不存在比 $5$ 更优的答案。) **【数据范围】** 令 $N$ 表示 $T$ 组数据中 $n$ 的总和。 对于 $\rm 30\%$ 的数据有:$T = 1, 1 \leq N \leq 15$。 对于 $60\%$ 的数据有:$1 \leq T \leq 10, 1 \leq N \leq 200$。 对于所有的测试数据有: $1 \leq T \leq 100, 1 \leq N \leq 2 \times 10^5\ ,-10^6 \leq a_i \leq 10^6$。