Cho mảng \(A\) gồm các số nguyên không âm. Hãy đếm số lượng cặp \(i < j\) mà \(A_i \oplus j = A_j \oplus i\), với \(\oplus\) là phép \(\text{XOR}\).
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\) (\(1 \le A_i \le 10^9\)).
Output
In ra một số nguyên là số lượng cặp số thỏa mãn.
Example
Input:
5
7 8 9 14 3
Output:
4
Note
Đánh số các phần tử của \(A\) từ \(1\): \(A = [7, 8, 9, 14, 3]\).
Điều kiện \(A_i \oplus j = A_j \oplus i\) tương đương với \(A_i \oplus i = A_j \oplus j\) (XOR cả hai vế với \(i \oplus j\)). Đặt \(B_i = A_i \oplus i\), ta có \(B = [7 \oplus 1, 8 \oplus 2, 9 \oplus 3, 14 \oplus 4, 3 \oplus 5] = [6, 10, 10, 10, 6]\).
Nhóm các chỉ số có cùng giá trị \(B_i\): nhóm \(\{1, 5\}\) (giá trị \(6\)) có \(1\) cặp, nhóm \(\{2, 3, 4\}\) (giá trị \(10\)) có \(3\) cặp. Tổng cộng có \(1 + 3 = 4\) cặp thỏa mãn.
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.