description: Monocarp has got an array a consisting of n integers. Let's denote k as the mathematic mean of these elements (note that it's possible that k is not an integer). 
  
  The mathematic mean of an array of n elements is the sum of elements divided by the number of these elements (i. e. sum divided by n).
  
  Monocarp wants to delete exactly two elements from a so that the mathematic mean of the remaining (n - 2) elements is still equal to k.
  
  Your task is to calculate the number of pairs of positions [i, j] (i < j) such that if the elements on these positions are deleted, the mathematic mean of (n - 2) remaining elements is equal to k (that is, it is equal to the mathematic mean of n elements of the original array a).
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 10^4) — the number of testcases.
  
  The first line of each testcase contains one integer n (3 ≤ n ≤ 2 ⋅ 10^5) — the number of elements in the array.
  
  The second line contains a sequence of integers a_1, a_2, ..., a_n (0 ≤ a_i ≤ 10^{9}), where a_i is the i-th element of the array.
  
  The sum of n over all testcases doesn't exceed 2 ⋅ 10^5.
  
  Output
  
  Print one integer — the number of pairs of positions [i, j] (i < j) such that if the elements on these positions are deleted, the mathematic mean of (n - 2) remaining elements is equal to k (that is, it is equal to the mathematic mean of n elements of the original array a).
  
  Example
  
  Input
  
  
  4
  4
  8 8 8 8
  3
  50 20 10
  5
  1 4 7 3 5
  7
  1 2 3 4 5 6 7
  
  
  Output
  
  
  6
  0
  2
  3
  
  Note
  
  In the first example, any pair of elements can be removed since all of them are equal.
  
  In the second example, there is no way to delete two elements so the mathematic mean doesn't change.
  
  In the third example, it is possible to delete the elements on positions 1 and 3, or the elements on positions 4 and 5.
solution: import sys
  from collections import defaultdict
  def del_two_element(n, a):
      #bước 1
      for i in range (len(a)):
          a[i] = int(a[i])
      #bước 2
      n = len(a)     #so phan tu cua chuoi a
  
      s = sum(a)      #tổng a
      p = (2*s)//n           #p là điều kiện đề bài sau khi đã rút gọn
      
      n_pair = 0                   #biến để đếm số cặp đạt đủ điều kiện
      
      #bước 3
      d = defaultdict(lambda:0)  
      
      #bước 4
      if (s - p)*n != s*(n-2):
          return 0
      #bươc 5    
      for i in a:
          x = p - i
          n_pair += d[x]
          d[i] += 1
      return n_pair
  
  
  if __name__ == "__main__":
  
      t = int(sys.stdin.readline())
      for _ in range(0, t):
          n = map(int,input())
          a = sys.stdin.readline().split()
          print (del_two_element(n, a))
          
  
  """Hàm main đọc đầu vào input.
  Dòng đầu tiên bao gồm biến t - số lượng test case
  Dòng thứ 2 gồm 2 biến n - số lượng phẩn từ trong mảng, và a- các giá trị mảng
  sử dụng map để map giá trị của input theo định dạng integer
  Sử dụng hàm split để tách thành chuỗi các giá trị của mảng
  
  Trong hàm del_two_element có 4 bước chính:
      bước 1 : ép kiểu các giá trị của a về int
      bước 2 : setup các biến
      bước 3 : Khởi tại 1 dictionnary với các giá trị default = 0
      bước 4 : Kiểm tra điều kiện ban đầu: nếu sai thì trả về kết quả = 0
      bước 5 : vòng lặp thực hiện 2 nhiệm vụ: cộng số value của một key vào biến đếm n_pair
                                              Tiếp tục lưu giá trị của i vào mảng và tăng số key lên 1"""
              
              