CF573E Bear and Bowling
题目描述
Limak 是一只年老的棕熊。他经常和朋友一起去打保龄球。今天他感觉很好,想要打破自己的记录!
投一次球会得到一个分数——一个整数(可能为负)。第 $i$ 次投球的分数会被乘以 $i$,最后将这些乘积相加。也就是说,如果有 $k$ 次投球,分数分别为 $s_1, s_2, ..., s_k$,那么总得分为
$$
1 \cdot s_1 + 2 \cdot s_2 + \dots + k \cdot s_k
$$
如果没有投球,总分为 $0$。
Limak 共投了 $n$ 次球,第 $i$ 次得分为 $a_i$。他现在想最大化自己的总得分,并且提出了一个有趣的主意:他可以取消若干次投球,理由是被什么事分心了或者有强风。
Limak 可以取消任意次数的投球,甚至可以全部都不保留或全部保留。计算总得分时,只考虑未被取消的投球。请看样例说明。
那么,Limak 最多能得到多少总分?
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 10^5$)。
第二行包含 $n$ 个用空格分隔的整数 $a_1,a_2,\ldots,a_n$($|a_i| \leq 10^7$),分别代表 Limak 每次投球的得分。
输出格式
输出在选择取消若干次投球后能得到的最大总得分。
说明/提示
在第一个样例中,Limak 应该取消分数为 $-8$ 和 $-3$ 的投球。这样他剩下三个投球,分数分别为 $-2,0,5$。总得分为 $1 \cdot (-2) + 2 \cdot 0 + 3 \cdot 5 = 13$。
在第二个样例中,Limak 应该取消分数为 $-50$ 的投球。总得分为 $1 \cdot (-10) + 2 \cdot 20 + 3 \cdot (-30) + 4 \cdot 40 + 5 \cdot 60 = 400$。
由 ChatGPT 5 翻译