Cho mảng \(A\) gồm các số nguyên 32-bit không âm. Hai số nguyên trong mảng được gọi là giống nhau nếu một số có thể thu được sau khi thực hiện một vài thao tác xoay vòng bit bất kì (có thể không thực hiện thao tác nào) từ số kia.
Ví dụ, với số nguyên dương \(5\) có biểu diễn nhị phân là 0000 0000 0000 0000 0000 0000 0000 0101:
-
Sau khi xoay vòng bit phải một lần, ta được số
1000 0000 0000 0000 0000 0000 0000 0010. -
Sau khi xoay vòng bit trái một lần, ta được số
0000 0000 0000 0000 0000 0000 0000 1010.
Yêu cầu: Hãy đếm số lượng cặp \(i < j\) mà \(A_i\) và \(A_j\) là hai số giống nhau.
Input
-
Dòng đầu tiên gồm số nguyên \(n\) (\(1 \le n \le 10^5\)).
-
Dòng thứ hai gồm \(n\) số nguyên \(A_1, A_2, \ldots, A_n\) (\(0 \le A_i < 2^{32}\)).
Output
In ra một số nguyên là số lượng cặp số giống nhau.
Example
Input:
7
128 786432 131072 1610612736 1536 4194304 50331648
Output:
9
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.