版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37960603/article/details/82049054
题目传送门
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
priority_queue<int,vector<int>,greater<int> >que;
int T;
scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
while(!que.empty()) que.pop();
for(int i=1,val;i<=n;i++){
scanf("%d",&val);
que.push(val);
}
int sum=0,tmp;
while(que.size()>2){
tmp=0;
tmp=que.top();
que.pop();
tmp+=que.top();
que.pop();
sum+=tmp;
que.push(tmp);
}
while(!que.empty()) sum+=que.top(),que.pop();
printf("%d\n",sum);
}
}