点击打开链接
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<string.h>
#include<set>
using namespace std;
int main()
{
int ncase, fruit, num, i;
scanf("%d", &ncase);
while(ncase--)
{
multiset<int> v; //可重复的多元集合
long long sum = 0;///要用long long 啊不然会wrong answer
scanf("%d", &fruit);
for(i = 0; i < fruit; ++i)
{
scanf("%d", &num);
v.insert(num); //插入一次自动排序一次
}
while(v.size() != 1)
{
int tmp1, tmp2;
tmp1 = *v.begin(); v.erase(v.begin());
tmp2 = *v.begin(); v.erase(v.begin());
sum += (tmp1 + tmp2);
v.insert(tmp1 + tmp2);
}
printf("%lld\n", sum);
}
return 0;
}