Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 256M
Input: stdin
Output: stdout

Author:
Problem type

Sunny là một cậu bé rất chăm học. Hiện tại, cô ấ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, Sunny quyết định thực hiện một số bài tập liên quan đến toán tử này. Trong số đó, có một 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 thỏa mãn a_i \oplus a_j \leq 1 với \oplus là ký hiệu của toán tử XOR).

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

Input:

  • Dòng đầu tiên ghi hai số nguyên n (1 \leq n \leq 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 \leq a_i \leq n).

Output:

  • In ra số cặp (i, j) với i < j thỏa mãn a_i \oplus a_j \leq 1.

Sample #1

stdin
3
2 3 1
stdout
1 

Sample #2

stdin
3
2 2 2
stdout
3
Subtasks
  • Subtask 1 với 20% số điểm: n, a_i \leq 1000
  • Subtask 2 với 20% số điểm: a_i \leq 1000
  • Subtask 3 với 60% số điểm: Không ràng buộc gì thêm
Notes
  • Ở ví dụ 1, các cặp (i, j) thỏa mãn là (1, 2).
  • Ở ví dụ 2, mọi cặp (i, j) đều thỏa mãn điều kiện.

Comments

There are no comments at the moment.