//这里是堆和队列的思想结合
#include<iostream>
#include<queue>
using namespace std;
int main(){
priority_queue<int> q;
int n,i,x;
while(cin>>n){
while(!q.empty()){
q.pop();
}
if(n==0){
break;
}
for(i=0;i<n;i++){
cin>>x;
q.push(x);
}
int sum=0;
while(!q.empty()){
int a=q.top();
q.pop();
if(!q.empty()){
int b=q.top();
q.pop();
sum+=a+b;
q.push(a+b);
}else{
break;
}
}
cout<<sum<<endl;
}
return 0;
}
Add All
最新推荐文章于 2023-07-31 17:39:15 发布