Sum of Bit Difference Among all Pairs

Posted: 7 Jan, 2021
Difficulty: Easy

PROBLEM STATEMENT

Try Problem

Given an array of size ‘N’ containing integer elements and let the elements of the given array be 'ARR1', 'ARR2',…..,' ARRN'. You need to find the sum of bit differences among all the pairs that can be formed using the given array elements.

Bit difference of a pair ('ARRi', 'ARRj') is the number of different bits in the numbers’ binary representation. For example, the bit difference of (3,5) is 2. The binary representation of 3 is 011, and of 5 is 101.

Note:
1. If ('ARRi', 'ARRj') is a pair, then ('ARRj', 'ARRi') will also be considered as a pair.
2. Both positive and negative numbers may be present.
3. Don't ignore the negative sign of the number. 
Input Format:
The first line of input contains an integer ‘T’ denoting the number of test cases.
The next 2* T lines represent the ‘T’ test cases. 

The first line of each test case contains an integer ‘N’ denoting the given integer array size.
The second line of each test case contains the ‘N’ space-separated integers denoting the array elements.
Output Format
For each test case, return the sum of bit differences among all the pairs.
Note:
You do not need to print anything. It has already been taken care of. Just implement the given function.
Constraints:
1 <= T <= 50
1 <= N <= 300
-10^9 <= ARR[i] <= 10^9 

Where ARR[i] is the 'i-th' element of the given array.

Time Limit: 1 sec
Approach 1
  • Run two nested loops to get every pair that can be formed using the given array elements.
  • For each pair calculate the different bits.
Try Problem