huffman编码的构建。用到了小顶堆的优先队列。(priority_queue(int , vector<int ,greater<int)
#include<bits/stdc++.h>
using namespace std;
int main(void){
int n;
while(scanf("%d",&n)&&n){
priority_queue <int,vector<int>,greater<int>>q;
for(int i=0;i<n;i++){
int a;
cin>>a;
q.push(a);
}
int ans=0;
while(1){
int a=q.top();
q.pop();
if(q.empty()){
break;
}
int b=q.top();
q.pop();
// printf("a=%d,b=%d\n",a,b);
ans+=a;
ans+=b;
q.push(a+b);
}
printf("%d\n",ans);
}
}