← Home
```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	var t int
	fmt.Fscan(in, &t)
	for ; t > 0; t-- {
		var n int
		fmt.Fscan(in, &n)
		a := make([]int64, n+2)
		for i := 1; i <= n; i++ {
			fmt.Fscan(in, &a[i])
		}
		pos_prefix := make([]int64, n+2)
		for i := 1; i <= n; i++ {
			var val int64 = 0
			if a[i] > 0 {
				val = a[i]
			} else {
				val = -a[i]
			}
			pos_prefix[i] = pos_prefix[i-1]
			if a[i] > 0 {
				pos_prefix[i] += val
			}
		}
		neg_suffix := make([]int64, n+2)
		neg_suffix[n+1] = 0
		for i := n; i >= 1; i-- {
			var val int64 = 0
			if a[i] > 0 {
				val = a[i]
			} else {
				val = -a[i]
			}
			neg_suffix[i] = neg_suffix[i+1]
			if a[i] < 0 {
				neg_suffix[i] += val
			}
		}
		ans := neg_suffix[1]
		for j := 1; j <= n; j++ {
			if a[j] > 0 {
				temp := pos_prefix[j] + neg_suffix[j+1]
				if temp > ans {
					ans = temp
				}
			}
		}
		fmt.Println(ans)
	}
}
```