#P58. 到处搬砖

到处搬砖

题目描述

  sy被学长们喊去搬砖了,他要将 $N$ 堆砖头摞成一堆。

  他每次可以任选一摞砖头摞到相邻的一摞砖头的上面,这样的操作被称之为“合成”。“合成”一次所花费的体力为你选择摞动的那摞砖头的重量。

  $N$ 摞砖头,每一摞都有它自身的重量。

  现在,sy想知道将这 $N$ 摞砖头“合成”成一摞砖头,所需要花费的最少体力是多少?

输入格式

第一行,输入一个整数 $N(1≤N≤5000)$。

第二行,输入 $N$ 个整数 $w_1, w_2, ..., w_N(1≤w_i≤10^5)$ ,表示第 $1$ 摞砖头至第 $N$ 摞砖头的质量。

输出格式

在一行中输出一个整数,表示将这 $N$ 摞砖头“合成”成一摞砖头所需要花费的最少体力。

样例

5
2 1 2 1 1
5

提示

首先,将第 $2$ 摞砖头摞到第 $3$ 摞砖头上,花费体力 $1$ ,现在的情况为“$2$ $3$ $1$ $1$”;然后此时,将现在的第 $3$ 摞砖头摞到第 $2$ 摞砖头上,花费体力 $1$ ,现在情况“$2$ $4$ $1$”;然后,将现在的第 $3$ 摞砖头摞到第 $2$ 摞砖头上,花费体力 $1$ ,现在情况“$2$ $5$”;最后花费体力 $2$ ,将第一摞砖头摞到第二摞砖头上。总共花费体力 $5$ 。

来源

2022 HGNU-SWUT暑假联合集训