description: There are n block towers in a row, where tower i has a height of a_i. You're part of a building crew, and you want to make the buildings look as nice as possible. In a single day, you can perform the following operation:
  
    * Choose two indices i and j (1 ≤ i, j ≤ n; i ≠ j), and move a block from tower i to tower j. This essentially decreases a_i by 1 and increases a_j by 1. 
  
  
  
  You think the ugliness of the buildings is the height difference between the tallest and shortest buildings. Formally, the ugliness is defined as max(a)-min(a). 
  
  What's the minimum possible ugliness you can achieve, after any number of days?
  
  Input
  
  The first line contains one integer t (1 ≤ t ≤ 1000) — the number of test cases. Then t cases follow.
  
  The first line of each test case contains one integer n (2 ≤ n ≤ 100) — the number of buildings.
  
  The second line of each test case contains n space separated integers a_1, a_2, …, a_n (1 ≤ a_i ≤ 10^7) — the heights of the buildings.
  
  Output
  
  For each test case, output a single integer — the minimum possible ugliness of the buildings.
  
  Example
  
  Input
  
  
  3
  3
  10 10 10
  4
  3 2 1 2
  5
  1 2 3 1 5
  
  
  Output
  
  
  0
  0
  1
  
  Note
  
  In the first test case, the ugliness is already 0.
  
  In the second test case, you should do one operation, with i = 1 and j = 3. The new heights will now be [2, 2, 2, 2], with an ugliness of 0.
  
  In the third test case, you may do three operations: 
  
    1. with i = 3 and j = 1. The new array will now be [2, 2, 2, 1, 5], 
    2. with i = 5 and j = 4. The new array will now be [2, 2, 2, 2, 4], 
    3. with i = 5 and j = 3. The new array will now be [2, 2, 3, 2, 3]. 
  
  The resulting ugliness is 1. It can be proven that this is the minimum possible ugliness for this test.
solution: import java.io.*;
  import java.util.*;
  
  public class Main {
      static int mod = 1000_000_007;
      static long mod1 = 998244353;
      static boolean memory = true;
      static FastScanner f;
      static PrintWriter pw;
      static double eps = 1e-6;
      static int oo = (int) 1e9;
  
      public static void solve() throws Exception {
            int n = f.ni();
            long sum = 0;
            for (int i = 0; i < n; ++i) {
              sum += f.nl();
            }  
            pn(sum % n == 0 ? 0 : 1); 
      }
  
      public static void main(String[] args) throws Exception {
          if (memory)
              new Thread(null, new Runnable() {
                  public void run() {
                      try {
                          Main.run();
                      } catch (Exception e) {
                          e.printStackTrace();
                          System.exit(1);
                      }
                  }
              }, "", 1 << 28).start();
          else {
              Main.run();
          }
      }
  
      static void run() throws Exception {
          if (System.getProperty("ONLINE_JUDGE") == null) {
              f = new FastScanner("");
              File file = new File("!out.txt");
              pw = new PrintWriter(file);
          } else {
              f = new FastScanner();
              pw = new PrintWriter(System.out);
          }
  
          int t = f.ni();
          while (t --> 0) {
              solve();
          }
  
          pw.flush();
          pw.close();
      }
  
      public static class FastScanner {
          BufferedReader br;
          StringTokenizer st;
  
          public FastScanner(String str) throws Exception {
              try {
                  br = new BufferedReader(new FileReader("!a.txt"));
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
  
          public FastScanner() {
              br = new BufferedReader(new InputStreamReader(System.in));
          }
  
          public String next() throws IOException {
              while (st == null || !st.hasMoreTokens())
                  st = new StringTokenizer(br.readLine());
              return st.nextToken();
          }
  
          public int ni() throws IOException {
              return Integer.parseInt(next());
          }
  
          public long nl() throws IOException {
              return Long.parseLong(next());
          }
  
          public String nextLine() throws IOException {
              return br.readLine();
          }
  
          public double nd() throws IOException {
              return Double.parseDouble(next());
          }
  
      }
  
      public static void pn(Object... o) {
          for (int i = 0; i < o.length; ++i)
              pw.print(o[i] + (i + 1 < o.length ? " " : "\n"));
      }
  
      public static void p(Object... o) {
          for (int i = 0; i < o.length; ++i)
              pw.print(o[i] + (i + 1 < o.length ? " " : ""));
      }
  
      public static void pni(Object... o) {
          for (Object obj : o)
              pw.print(obj + " ");
          pw.println();
          pw.flush();
      }
  
      public static void sort(int[] a) {
          ArrayList<Integer> l = new ArrayList<>();
          for (int i : a)
              l.add(i);
          Collections.sort(l);
          for (int i = 0; i < a.length; ++i)
              a[i] = l.get(i);
      }
  
      public static void sort(long[] a) {
          ArrayList<Long> l = new ArrayList<>();
          for (long i : a)
              l.add(i);
          Collections.sort(l);
          for (int i = 0; i < a.length; ++i)
              a[i] = l.get(i);
      }
  }