Bear and Bowling
题意翻译
- 给定一个长度为 $n$ 的序列 $a_{1\dots n}$。
- 你要求一个 $a$ 的子序列 $b_{1\dots m}$(可以为空),使得 $\sum_{i=1}^m ib_i$ 的值最大。
- $n \le 10^5$,$|a_i| \le 10^7$。
题目描述
Limak is an old brown bear. He often goes bowling with his friends. Today he feels really good and tries to beat his own record!
For rolling a ball one gets a score — an integer (maybe negative) number of points. Score for $ i $ -th roll is multiplied by $ i $ and scores are summed up. So, for $ k $ rolls with scores $ s_{1},s_{2},...,s_{k} $ , total score is ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF573E/dc22606298d977fae92bc67b7a4815c447193831.png). Total score is $ 0 $ if there were no rolls.
Limak made $ n $ rolls and got score $ a_{i} $ for $ i $ -th of them. He wants to maximize his total score and he came up with an interesting idea. He will cancel some rolls, saying that something distracted him or there was a strong wind.
Limak is able to cancel any number of rolls, maybe even all or none of them. Total score is calculated as if there were only non-canceled rolls. Look at the sample tests for clarification. What maximum total score can Limak get?
输入输出格式
输入格式
The first line contains single integer $ n $ ( $ 1<=n<=10^{5} $ ).
The second line contains $ n $ space-separated integers $ a_{1},a_{2},...,a_{n} $ ( $ |a_{i}|<=10^{7}) $ - scores for Limak's rolls.
输出格式
Print the maximum possible total score after choosing rolls to cancel.
输入输出样例
输入样例 #1
5
-2 -8 0 5 -3
输出样例 #1
13
输入样例 #2
6
-10 20 -30 40 -50 60
输出样例 #2
400
说明
In first sample Limak should cancel rolls with scores $ -8 $ and $ -3 $ . Then he is left with three rolls with scores $ -2,0,5 $ . Total score is $ 1·(-2)+2·0+3·5=13 $ .
In second sample Limak should cancel roll with score $ -50 $ . Total score is $ 1·(-10)+2·20+3·(-30)+4·40+5·60=400 $ .