Problem1720--收集金币

1720: 收集金币

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MiB

Description

题目背景

你说的对,但是《surf》是由Microsoft自主研发的一款全新不开放世界冒险游戏。游戏发生在一个被称作「edge」的浏览器,在这里,被神选中的人将被授予「冲浪板」,导引冲浪。你将扮演一位名为「冲浪者」的神秘角色,在自由的冲浪中中邂逅性格各异、能力独特的可拾取物,和他们一起避开章鱼,找回失散的金币——同时,逐步发掘「surf」的真相。

题目描述

       霓格是一位冲浪玩家,他发现他拥有了将《surf》中的金币转移到现实世界的能力。现在他有n堆金币,但是他只能取出一堆,幸运的是他可以将这n堆金币合并成一堆,不幸的是他每将两堆金币合并成一堆就会使分数增加(分数增加的值等于两堆金币之和),并在霓格将金币转化为现实时扣除相应金币数量。霓格想要使自己最后获得的金币尽可能多,想请你计算出分数的最小值

Input

输入格式

共两行。
第一行是一个整数 n(1n10000) ,表示金币的堆数。

第二行包含 n 个整数,用空格分隔,第 i个整数 ai(1≤ai̤≤20000) 是第 i 堆金币的数目。

Output

输出格式

一个整数,也就是最小的分数值。输入数据保证这个值小于 2^31

 

Sample Input Copy

3
1 2 9

Sample Output Copy

15

Source/Category