output_description: Print the value \sum_{i=1}^{N-1}\sum_{j=i+1}^{N} (A_i \mbox{ XOR } A_j),
  modulo (10^9+7).
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 ... A_N
attempt: import sys
  
  input = sys.stdin.readline
  M = 10**9 + 7
  n = int(input())
  l = list(map(int, input().split()))
  x = max(l)
  s = bin(x)
  u = len(s) - 2
  o = [0] * u
  for i in l:
      x = bin(i)
      x = x[2:]
      a = list(x)
      d = u - len(a)
      a = (["0"] * d) + a
      j = 0
      while j < len(o):
          if a[j] == "1":
              o[j] = o[j] + 1
  
          j = j + 1
  
  # print(o)
  cnt = 0
  z = len(o) * [0]
  for i in range(len(o)):
      z[i] = len(l) - o[i]
  
  o = o[::-1]
  z = z[::-1]
  for r in range(len(l) - 1):
      i = l[r]
      x = bin(i)
      x = x[2:]
      a = list(x)
      d = u - len(a)
      a = (["0"] * d) + a
      a = a[::-1]
      j = u - 1
      while j > -1:
          if a[j] == "1":
              o[j] = o[j] - 1
  
          if a[j] == "0":
              z[j] = z[j] - 1
  
          j = j - 1
  
      j = u - 1
      while j > -1:
          if a[j] == "0":
              z[j] = z[j] - 1
              cnt = (cnt + ((2**j) * o[j]) % M) % M
  
              if a[j] == "1":
                  cnt = (cnt + ((2**j) * z[j]) % M) % M
  
          j = j - 1
  
      j = u - 1
      # print(cnt)
  
  print(cnt)
  
problem_description: Statement
  
  We have N integers. The i-th integer is A_i.
  
  Find \sum_{i=1}^{N-1}\sum_{j=i+1}^{N} (A_i \mbox{ XOR } A_j), modulo (10^9+7).
  
  What is \mbox{ XOR }?
  
  The XOR of integers A and B, A \mbox{ XOR } B, is defined as follows:
  
    * When A \mbox{ XOR } B is written in base two, the digit in the 2^k's place (k \geq 0) is 1 if either A or B, but not both, has 1 in the 2^k's place, and 0 otherwise.
  
  For example, 3 \mbox{ XOR } 5 = 6. (In base two: 011 \mbox{ XOR } 101 = 110.)
samples: [{"input": "3\n    1 2 3", "output": "6\n    \n\nWe have (1\\mbox{ XOR } 2)+(1\\mbox{ XOR } 3)+(2\\mbox{ XOR } 3)=3+2+1=6.\n\n* * *"}, {"input": "10\n    3 1 4 1 5 9 2 6 5 3", "output": "237\n    \n\n* * *"}, {"input": "10\n    3 14 159 2653 58979 323846 2643383 27950288 419716939 9375105820", "output": "103715602\n    \n\nPrint the sum modulo (10^9+7)."}]