CF660F Bear and Bowling 4
题目描述
Limak 是一只年老的棕熊。他经常和朋友们一起去保龄球馆玩。今天他感觉非常好,想要打破自己的历史最高分纪录!
每次投球会得到一个分数——一个整数(可以为负数)。第 $i$ 次投球的分数会乘上 $i$,最后所有得分相加。所以做了 $k$ 次投球,分数分别是 $s_{1},s_{2},...,s_{k}$,总得分为
$$
\sum_{i=1}^{k} i \cdot s_i
$$
如果没有投球,则总得分为 $0$。
Limak 一共做了 $n$ 次投球,第 $i$ 次得到的分数为 $a_{i}$。他想要让自己的得分最大,于是想到了一个有趣的主意:他可以说前几次投球只是热身,最后几次投球则不够专注。更正式地讲,他可以将分数序列 $a_{1},a_{2},...,a_{n}$ 的任意前缀和任意后缀取消掉。允许全部取消,也允许全部保留。
得分的计算仅根据未被取消的部分计算。未被取消部分的第一个投球分数乘以 $1$,第二个乘以 $2$,以此类推,直到最后一个。
Limak 能得到的最大总得分是多少?
输入格式
第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^{5}$),表示 Limak 投球的次数。
第二行包含 $n$ 个整数 $a_{1},a_{2},...,a_{n}$($|a_{i}| \le 10^{7}$),表示每次投球的得分。
输出格式
输出经过取消投球后,可能获得的最大总得分。
说明/提示
在第一个样例中,Limak 应该取消最开始的两个投球和最后一个投球。这样他获得的分数是 $1,-3,7$,总得分为 $1 \cdot 1 + 2 \cdot (-3) + 3 \cdot 7 = 1 - 6 + 21 = 16$。
由 ChatGPT 5 翻译