// WA 解法 // Use std::multiset<> but erase items in wrong manner #include #include #include #include using namespace std; int main() { cin.tie(nullptr); ios::sync_with_stdio(false); int T; cin >> T; while (T--) { int N; cin >> N; vector A(N); for (auto &x : A) cin >> x; sort(A.begin(), A.end()); int all = A.back(); for (int i = N - 1; i; --i) A[i] -= A[i - 1]; multiset ms; int last = 0; for (int i = 0; i < N; ++i) { ms.insert(A[i]); if (i % 2 == 0 and ms.size()) { int v = *prev(ms.end()); last += v; ms.erase(v); } } cout << ((N & 1) ? last : all - last) << '\n'; } }