```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
in := bufio.NewReader(os.Stdin)
var t int
fmt.Fscan(in, &t)
for _ = range make([]int, t) {
var n int
fmt.Fscan(in, &n)
a := make([]int64, n)
var total_sum int64
for i := 0; i < n; i++ {
fmt.Fscan(in, &a[i])
total_sum += a[i]
}
sort.Slice(a, func(i, j int) bool { return a[i] > a[j] })
var ans int64 = 0
found := false
for k := 0; k <= n-3; k++ {
rem_n := n - k
if rem_n < 3 {
break
}
rem_sum := total_sum
for i := 0; i < k; i++ {
rem_sum -= a[i]
}
freq := make(map[int64]int)
for i := k; i < n; i++ {
freq[a[i]]++
}
var odd_l []int64
var even_l []int64
for l, f := range freq {
if f % 2 == 1 {
odd_l = append(odd_l, l)
} else if f > 0 {
even_l = append(even_l, l)
}
}
sort.Slice(odd_l, func(i, j int) bool { return odd_l[i] < odd_l[j] })
sort.Slice(even_l, func(i, j int) bool { return even_l[i] < even_l[j] })
r := len(odd_l)
var sum_odd int64 = 0
for _, v := range odd_l {
sum_odd += v
}
var min_ex int64 = -1
{
ex_sum := sum_odd
ex_num := r
m := rem_n - ex_num
if m%2 == 0 && m >= 4 {
min_ex = ex_sum
}
}
{
var ex_sum int64
var ex_num int
ok := false
if r > 0 {
max_o := odd_l[r-1]
ex_sum = sum_odd - max_o
ex_num = r - 1
ok = true
} else if len(even_l) > 0 {
min_e := even_l[0]
ex_sum = min_e
ex_num = 1
ok = true
}
if ok {
m := rem_n - ex_num
if m%2 == 1 && m >= 3 {
if min_ex == -1 || ex_sum < min_ex {
min_ex = ex_sum
}
}
}
}
{
var ex_sum int64
var ex_num int
ok := false
if r >= 2 {
max1 := odd_l[r-1]
max2 := odd_l[r-2]
ex_sum = sum_odd - (max1 + max2)
ex_num = r - 2
ok = true
} else if r == 1 && len(even_l) > 0 {
only_o := odd_l[0]
min_e := even_l[0]
ex_sum = min_e + sum_odd - only_o
ex_num = 1
ok = true
} else if r == 0 && len(even_l) >= 2 {
min1 := even_l[0]
min2 := even_l[1]
ex_sum = min1 + min2
ex_num = 2
ok = true
}
if ok {
m := rem_n - ex_num
if m%2 == 0 && m >= 4 {
if min_ex == -1 || ex_sum < min_ex {
min_ex = ex_sum
}
}
}
}
if min_ex != -1 {
P := rem_sum - min_ex
max_sel := a[k]
if P > 2*max_sel {
ans = P
found = true
break
}
}
}
if !found {
ans = 0
}
fmt.Println(ans)
}
}
```