Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Dế Mèn là một câu bé rất chăm học. Hiện tại, anh ấy đang tìm hiểu về XOR - một toán tử thao tác bit. Bạn cũng có thể tìm hiểu về XOR tại đây.

Sau khi đã hiểu về XOR, Dế Mèn quyết định thực hiện 1 số bài tập liên quan đến toán tử này. Trong số đó, có 1 bài tập thú vị như sau: Cho dãy ~a~ gồm ~n~ phần tử. Đếm số cặp (i, j) với ~i < j~ thoả mãn ~a_i ⊕ a_j \le 1~ (với ~⊕~ là ký hiệu của toán tử XOR).

Dế Mèn đang gặp khó khăn khi giải bài tập này, các bạn hãy giúp anh ấy nhé.

Dữ liệu

  • Dòng đầu tiên ghi hai số nguyên ~n~ (~1 \le n \le 10^5~) - số phân tử của dãy a.
  • Dòng thứ hai ghi n số nguyên của dãy a (~1 \le a_i \le n~)

In ra kết quả

In ra số cặp ~(i, j)~ với ~i < j~ thoả mãn ~a_i ⊕ a_j \le 1~

Sample Input 1

3
2 3 1

Sample Output 1

1

Sample Input 2

3
2 2 2

Sample Output 2

3

Giải thích

  • Ở ví dụ 1, các cặp ~(i, j)~ thoả mãn ~(1, 2)~
  • Ở ví dụ 1, mọi cặp ~(i, j)~ đều thoả mãn

Chấm điểm

  • Subtask 1 (~20%~ số test): ~n, a_i \le 1000~
  • Subtask 2 (~20%~ số test): ~a_i \le 1000~
  • Subtask 1 (~60%~ số test): Không có ràng buộc gì thêm

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.