Problem11427--【模板】哈夫曼编码

11427: 【模板】哈夫曼编码

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

Description

给出一个有 $n$ 种字符组成的字符串,其中第 $i$ 种字符出现的次数为 $a_i$。
请你对该字符串应用哈夫曼编码,使得该字符串的长度尽可能短,求编码后的字符串的最短长度。

Input

第一行输入一个整数 $n\ (1≤n≤2⋅10^5)$,表示字符种数。
第二行输入 $n$ 个整数 $a_i\ (1≤a_i≤10^9)$,表示每种字符的出现次数。

Output

输出一行一个整数,表示编码后字符串的最短长度。

Sample 1 Input

3
1 2 3

Sample 1 Output

9
三种字符的哈夫曼编码分别为 [00, 01, 1] 时,长度最短,最短长度为 $9$。

Sample 2 Input

5  
1 2 2 5 9

Sample 2 Output

37

Sample 3 Input

3
5 11 30

Sample 3 Output

62

2
2 8

10

Source/Category