Add All(优先队列)

Problem FAdd AllInput:standard inputOutput:standard output

Yup!! The problem name reflects your task; just add a set of numbers. But you may feel yourselves condescended, to write a C/C++ program just to add a set of numbers. Such a problem will simply question your erudition. So, let’s add some flavor of ingenuity to it.

Addition operation requires cost now, and the cost is the summation of those two to be added. So, to add1and10, you need a cost of11.If you want to add1,2and3.There are several ways –

1 + 2 = 3, cost = 3

3 + 3 = 6, cost = 6

Total = 9

1 + 3 = 4, cost = 4

2 + 4 = 6, cost = 6

Total = 10

2 + 3 = 5, cost = 5

1 + 5 = 6, cost = 6

Total = 11

I hope you have understood already your mission, to add a set of integers so that the cost is minimal.

Input

Each test case will start with a positive number,N (2 ≤ N ≤ 5000)followed byNpositive integers (all are less than100000). Input is terminated by a case where the value ofNis zero. This case should not be processed.

Output

For each case print the minimum total cost of addition in a single line.

Sample InputOutput for Sample Input

3

1 2 3

4

1 2 3 4

0

9

19

Problem setter: Md. Kamruzzaman, EPS

,相信人生有挫折没有失败,相信生命的质量来自决不妥协的信念。

Add All(优先队列)

相关文章:

你感兴趣的文章:

标签云: