Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập bitopsxoayvong

Xoay vòng

Dễ Cài đặt

  • 100 Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 0% Tỉ lệ AC
  • 0 Số AC

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

Chưa có bình luận nào.