呼风唤雨
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

演员Jakon喜欢在群里呼风唤雨。
从而召唤出一阵阵的风和雨,导致每次Eriktse不得不在群里打伞。

众所周知,先有风后有雨。
现在空中有N股神秘力量,它们要么是“风”,要么是“雨”,且“雨”一定在“风”的后面,且不会出现“只有风”或“只有雨”的情况。
换句话说,若把神秘力量从1到N编号,则存在一个分界点K使得全是风,全是雨。()
每一股神秘力量有一个初始能量a_i,如果将这份力量看作“风”,则这一股的真实能量为,如果看作“雨”,则这一股真实能量为
Eriktse的伞的1点防护值可以挡住1的能量。
能量和为所有神秘力量的真实能量之和,求Eriktse的伞至少需要多少防护值)才能抵挡住Jakon的风雨。

输入描述:

有多组测试样例。

第一行一个整数T,表示测试样例数量()。

一个整数N,表示神秘力量的股数()。

接下来N个整数,表示第i股神秘力量的初始能量ai ()

输出描述:

对于每一个测试用例,输出一个整数表示Eriktse的伞需要的最小防护值)。
示例1

输入

复制
2
5
2 -9 3 7 5
6
3 3 -5 99 8 7

输出

复制
6912
58710

备注:

对于样例中第一组,令k = 2,可以得到最大能量114 * (2 - 9) + 514 * (3 + 7 + 5) = 6912