← Home
package main

import (
	"bufio"
	"os"
	"strconv"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Split(bufio.ScanWords)
	scanner.Buffer(make([]byte, 64*1024), 10*1024*1024)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	if !scanner.Scan() {
		return
	}
	t, _ := strconv.Atoi(scanner.Text())

	for i := 0; i < t; i++ {
		scanner.Scan()
		n, _ := strconv.Atoi(scanner.Text())

		a := make([]int64, n)
		var sum int64
		for j := 0; j < n; j++ {
			scanner.Scan()
			a[j], _ = strconv.ParseInt(scanner.Text(), 10, 64)
			sum += a[j]
		}

		if (2*sum)%int64(n) != 0 {
			out.WriteString("0\n")
			continue
		}

		target := (2 * sum) / int64(n)
		freq := make(map[int64]int64)
		var ans int64

		for j := 0; j < n; j++ {
			ans += freq[target-a[j]]
			freq[a[j]]++
		}

		out.WriteString(strconv.FormatInt(ans, 10) + "\n")
	}
}