#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std;
inline bool cmp(int a, int b)
{
return a > b;
}
int main()
{
int t;
scanf("%d", &t);
for (int cases = 0; cases < t; cases++) {
int l, n;
scanf("%d%d", &l, &n);
vector<int> a(n);
for (int i = 0; i < n; i++) scanf("%d", &a[i]);
make_heap(a.begin(), a.end(), cmp);
int ans = 0;
for (int i = 1; i < n; i++) {
int n1 = a.front();
pop_heap(a.begin(), a.end(), cmp), a.pop_back();
int n2 = a.front();
pop_heap(a.begin(), a.end(), cmp), a.pop_back();
a.push_back(n1 + n2), ans += n1 + n2;
push_heap(a.begin(), a.end(), cmp);
}
printf("%d\n", ans);
}
return 0;
}
在 12-5-25,Junkun Huang<huang...@gmail.com> 写道: