#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds; // needed for tree + PBDS
#define pb push_back
#define all(x) x.begin(), x.end()
typedef long long ll;
const ll INF = (ll)1e18;
const ll MOD = 1000000000+7 ;
template <class T>
using ordered_set = tree<
T,
null_type,
less<T>,
rb_tree_tag,
tree_order_statistics_node_update
>;
void solve() {
ll n ; cin >> n ;
map < ll , ll >mp ;
for (int i = 0 ; i< n ; i ++ ) {
ll x ; cin >> x ;mp[x] ++ ;
}
ll nb = 0 ;
set < ll > st;
ll ans= 0 ;
for (auto &e : mp ) {
if (e.second == 1 ) {
st.insert(e.first) ; continue ;
}
nb += (e.second/2) ;
if (e.second %2 == 0 )ans+=(e.second *e.first);
else {
ans+=e.first*(e.second-1) ;
st.insert(e.first ) ;
}
}
if (nb == 0 ) {
cout <<0 << endl ;return;
}
if (nb == 1 ) {
if (st.size() >= 1 ) {
ll z = *st.rbegin() ;
//cout <<z <<"e" << ans << endl ;
if (z >= ans) {
cout << 0<< endl ;return;
}
ans+=(*st.rbegin()) ;
cout << ans << endl ;return;
}
cout << 0 << endl ;return;
}
/// nb> 1
if (st.size() == 0 ) {
cout << ans << endl ;return;
}
if (st.size() == 1 ) {
ll z = *st.begin() ;
if (z>=ans ) {
cout << 0 << endl ; return;
}
ans+= z ;
cout << ans << endl ; return;
}
//auto it = st.upper_bound(ans)
ans+=(*st.rbegin() + *prev(st.rbegin())) ;
cout << ans << endl ;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int t = 1 ; cin >> t;
int maxi = 200000 + 5;
while (t--) solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOyAgIC8vIG5lZWRlZCBmb3IgdHJlZSArIFBCRFMKCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKY29uc3QgbGwgSU5GID0gKGxsKTFlMTg7CmNvbnN0IGxsIE1PRCA9IDEwMDAwMDAwMDArNyA7Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4KdXNpbmcgb3JkZXJlZF9zZXQgPSB0cmVlPAogICAgVCwKICAgIG51bGxfdHlwZSwKICAgIGxlc3M8VD4sCiAgICByYl90cmVlX3RhZywKICAgIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZQo+OwoKdm9pZCBzb2x2ZSgpIHsKICAgIGxsIG4gOyBjaW4gPj4gbiA7CiAgICBtYXAgPCBsbCAsIGxsICA+bXAgOwogICAgZm9yIChpbnQgaSA9IDAgOyBpPCAgbiA7IGkgKysgKSB7CiAgICAgICAgbGwgeCA7IGNpbiA+PiB4IDttcFt4XSArKyA7CiAgICB9CiAgICBsbCBuYiA9IDAgOwogICAgc2V0IDwgbGwgPiBzdDsKICAgIGxsIGFucz0gMCA7CiAgICBmb3IgKGF1dG8gJmUgOiBtcCApIHsKICAgICAgICBpZiAoZS5zZWNvbmQgPT0gMSApIHsKICAgICAgICAgICAgc3QuaW5zZXJ0KGUuZmlyc3QpIDsgY29udGludWUgOwogICAgICAgIH0KCiAgICAgICAgbmIgKz0gKGUuc2Vjb25kLzIpIDsKICAgICAgICBpZiAoZS5zZWNvbmQgJTIgPT0gMCApYW5zKz0oZS5zZWNvbmQgKmUuZmlyc3QpOwogICAgICAgIGVsc2UgewogICAgICAgICAgICBhbnMrPWUuZmlyc3QqKGUuc2Vjb25kLTEpIDsKICAgICAgICAgICAgc3QuaW5zZXJ0KGUuZmlyc3QgKSA7CiAgICAgICAgfQoKICAgIH0KICAgIGlmIChuYiA9PSAwICkgewogICAgICAgIGNvdXQgPDwwIDw8IGVuZGwgO3JldHVybjsKICAgIH0KICAgIGlmIChuYiA9PSAxICkgewogICAgICAgIGlmIChzdC5zaXplKCkgPj0gMSApIHsKICAgICAgICAgICAgbGwgeiA9ICpzdC5yYmVnaW4oKSA7CiAgICAgICAgICAgIC8vY291dCA8PHogPDwiZSIgPDwgYW5zIDw8IGVuZGwgOwogICAgICAgICAgICBpZiAoeiA+PSBhbnMpIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgMDw8IGVuZGwgO3JldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBhbnMrPSgqc3QucmJlZ2luKCkpIDsKICAgICAgICAgICAgY291dCA8PCBhbnMgPDwgZW5kbCA7cmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IDAgPDwgZW5kbCA7cmV0dXJuOwogICAgfQogICAgIC8vLyAgbmI+IDEKICAgICBpZiAoc3Quc2l6ZSgpICA9PSAgMCApIHsKICAgICAgICAgY291dCA8PCBhbnMgPDwgZW5kbCA7cmV0dXJuOwogICAgIH0KICAgIGlmIChzdC5zaXplKCkgPT0gIDEgKSB7CiAgICAgICAgbGwgeiA9ICpzdC5iZWdpbigpIDsKICAgICAgICBpZiAoej49YW5zICkgewogICAgICAgICAgICBjb3V0IDw8IDAgIDw8IGVuZGwgOyByZXR1cm47CiAgICAgICAgfQogICAgICAgIGFucys9IHogOwoKICAgICAgICBjb3V0IDw8IGFucyA8PCBlbmRsIDsgcmV0dXJuOwogICAgfQogICAgLy9hdXRvIGl0ID0gc3QudXBwZXJfYm91bmQoYW5zKQogICAgYW5zKz0oKnN0LnJiZWdpbigpICsgKnByZXYoc3QucmJlZ2luKCkpKSA7CiAgICBjb3V0IDw8IGFucyA8PCBlbmRsIDsKCn0KaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKICAgIGludCB0ID0gMSA7IGNpbiA+PiB0OwogICAgaW50IG1heGkgPSAyMDAwMDAgKyA1OwoKICAgIHdoaWxlICh0LS0pIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQ==