AT_abc147_d [ABC147D] Xor Sum 4

Description

[problemUrl]: https://atcoder.jp/contests/abc147/tasks/abc147_d $ N $ 個の整数があり、$ i $ 番目の整数は $ A_i $ です。 $ \sum_{i=1}^{N-1}\sum_{j=i+1}^{N}\ (A_i\ \text{\ XOR\ }\ A_j) $ を $ 10^9+7 $ で割った余りを求めてください。 $ \text{\ XOR\ } $ とは 整数 $ A,\ B $ のビットごとの排他的論理和 $ a\ \text{\ XOR\ }\ b $ は、以下のように定義されます。 - $ a\ \text{\ XOR\ }\ b $ を二進表記した際の $ 2^k $ ($ k\ \geq\ 0 $) の位の数は、$ A,\ B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $、そうでなければ $ 0 $ である。 例えば、$ 3\ \text{\ XOR\ }\ 5\ =\ 6 $ となります (二進表記すると: $ 011\ \text{\ XOR\ }\ 101\ =\ 110 $)。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_1 $ $ A_2 $ $ ... $ $ A_N $

Output Format

$ \sum_{i=1}^{N-1}\sum_{j=i+1}^{N}\ (A_i\ \text{\ XOR\ }\ A_j) $ を $ 10^9+7 $ で割った余りを出力せよ。

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 3\ \times\ 10^5 $ - $ 0\ \leq\ A_i\