Description
FJ想把牧场的围栏重修一下。他测量了一下围栏发现他需要N(1≤N≤20000)块木板,第i块木板的长度为Li(1≤Li≤50000)。
FJ购买了一块很长的木板,木板的长度恰好等于N块木板的长度之和。接下来,他需要把这个长木板锯成一块块他需要长度的木板。但是FJ发现他没有锯子,于是FJ想向FD借用锯子,作为有经济头脑的FD并没有把锯子借给FJ,而是说帮FJ锯好所有的木板并收取一定的费用。每次收取的费用恰好等于每次切割的木板的长度。
FJ知道不同的切割顺序产生的费用是不同的,请帮助FJ计算一下切割出N块木板最小的花费。
Input
一个整数N,表示木板的数量
接下来N行,每行一个整数,分别表示每块木板的长度
HINT
样例说明:
起初木板的长度为21,第一次切割切割木板花费是21,把木板分成长度分别为13和8,然后花费13,把长度为13的木板切成长度8和5两块,总花费是21+13=34.
如果第一次把木板切成长度为16和5,那么第二次切木板的花费是16,这样总的花费是37,比刚才的方案花费多。