修补栅栏

成绩 100 开启时间 2020年06月17日 星期三 17:25
折扣 0.8 折扣时间 2020年06月17日 星期三 17:25
允许迟交 关闭时间 2020年06月17日 星期三 17:25
输入文件 repair.in 输出文件 repair.out

【题目描述】修补栅栏(repair)POJ 3253

院长家后花园的栅栏坏了,他测量了栅栏,发现需要N(1≤N≤20 000)块木板,每块木板为长度Li(1≤Li≤50 000)的整数。他买了一块长得足以锯成N块木板的长板(也就是说,它的长度是长度Li的总和,不考虑锯木板时的额外损失)。

但是锯木板的代价正好等于它的长度,例如锯一块长度为21的木板要花费的代价为21。问如何安排锯木板的顺序,使得花费的总代价最小。

【输入格式】

第一行为一个整数N。随后N行,每行一个整数,代表每块木板长度。

【输出格式】

输出一个数,即最小代价。

【输入样例】

3

8

5

8

【输出样例】

34

【样例说明】

先从无限长的木板上锯下长度为 21 的木板,花费 21;

再从长度为21的木板上锯下长度为5的木板,花费5;

再从长度为16的木板上锯下长度为8的木板,花费8;

总花费=21+5+8=34