#M260925C. 分段(seg)

    ID: 255 传统题 文件IO:seg 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>动态规划基础算法前缀和 文件IO:seg

分段(seg)

题目描述

小Z要将一个长度为 nn 的序列分为连续的 kk 段,然后将每一段分别求和为 bib_i,他想最大化

∑i=1kbi×i\sum_{i=1}^k b_i\times i

更通俗的:

请最大化:“第一段的和乘 11 ,加上第二段的和乘 22,一直加到第 ii 段的和乘 ii ”...

小Z想知道对于每一个 k∈[1,n]k\in[1,n] 的最后结果

输入格式

第一行,一个正整数 nn,表示原序列元素个数

第二行,nn 个整数 aia_i

输出格式

nn 个数字,表示要分为 k=ik=i 段时最后最大结果

输入输出样例

6
1 3 -4 5 -1 -2
2 4 5 3 1 -2

样例 #1\tt \#1说明

当 k=3k=3 时,分为:

[1],[3,−4],[5,−1,−2][1], [3, -4], [5, -1, -2]

结果最大为 1×1+2×(−1)+3×2=51\times1+2\times(-1)+3\times2=5

数据范围

30%:n≤1530\%:n\le 15

60%:n≤20060\%:n\le 200

100%:n≤2×105,−106≤ai≤106100\%:n\le 2\times10^5, -10^6\le a_i\le 10^6