```go
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
readInt := func() int {
scanner.Scan()
val, _ := strconv.Atoi(scanner.Text())
return val
}
if scanner.Scan() {
t, _ := strconv.Atoi(scanner.Text())
for i := 0; i < t; i++ {
n := readInt()
var sum int64 = 0
ops := 0
inBlock := false
for j := 0; j < n; j++ {
val := readInt()
if val < 0 {
sum += int64(-val)
if !inBlock {
ops++
inBlock = true
}
} else {
sum += int64(val)
if val > 0 {
inBlock = false
}
}
}
fmt.Fprintln(writer, sum, ops)
}
}
}
```