We define f (X, Y) as number of different corresponding bits in binary representation of X and Y. For example, f (2, 7) = 2, since binary representation of 2 and 7 are 010 and 111, respectively. The first and the third bit differ, so f (2, 7) = 2.

You are given an array of N integers, A_{1}, A_{2} ,…, A_{N}. Find sum of f(A_{i}, A_{j}) for all pairs (i, j) such that 1 ≤ i, j ≤ N. Return the answer modulo 10^{9}+7.

**Input:**

The first line of each input consists of the test cases. The description of T test cases is as follows:

The first line of each test case contains the size of the array, and the second line has the elements of the array.

**Output:**

In each separate line print sum of all pairs for (i, j) such that 1 ≤ i, j ≤ N and return the **answer modulo 10 ^{9}+7.**

**Constraints:**

1 ≤ T ≤ 70

1 ≤ N ≤ 10^{4}

-2,147,483,648 ≤ A[i] ≤ 2,147,483,647

**Example:**

**Input:**

2

2

2 4

3

1 3 5

**Output:**

4

8

**Working:**

A = [1, 3, 5]

We return

f(1, 1) + f(1, 3) + f(1, 5) +

f(3, 1) + f(3, 3) + f(3, 5) +

f(5, 1) + f(5, 3) + f(5, 5) =

0 + 1 + 1 +

1 + 0 + 2 +

1 + 2 + 0 = 8

Author: madhuradlakha

If you have purchased any course from GeeksforGeeks then please ask your doubt on course discussion forum. You will get quick replies from GFG Moderators there.

saiujwal13083 | 489 |

sudeep235poojary | 302 |

VithalNakod | 272 |

AshutoshPal1 | 254 |

go__karuna | 253 |

Soseph_Jtalin | 792 |

AshutoshPal1 | 722 |

architjindal__ | 648 |

go__karuna | 577 |

ArbazGrewal | 527 |

blackshadows | 5362 |

Ibrahim Nash | 5242 |

akhayrutdinov | 5111 |

mb1973 | 4931 |

Quandray | 4598 |

Login to report an issue on this page.