CXOR - Phép toán XOR

Xem dạng PDF

Gửi bài giải

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

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Bạn có mảng ~a~ với ~N~ số nguyên. Bạn cần đếm số lượng cặp ~\text{funny} (l, r)~ với ~(1 \le l \le r \le n)~.

Cặp ~\text{funny}(l, r)~ là cặp thỏa điều kiện sau:

  • ~r - l + 1~ là số chẵn.
  • Với $$mid = \frac{l + r − 1}{2}, a_l ⊕ a_{l+1} ⊕ ... ⊕ a_{mid} = a_{mid+1} ⊕ a_{mid+2} ⊕ ... ⊕ a_r$$.

Lưu ý: ~⊕~ là phép toán XOR

Click vào đây để xem cách hoạt động của phép XOR

Input

  • Dòng đầu chứa số nguyên ~N (2 \le N \le 3 × 10^5)~ là kích thước của mảng.
  • Dòng tiếp theo chứa ~N~ số nguyên ~a_1, a_2, ..., a_N (0 \le a_i < 2^{20})~ là các phần tử của mảng.

Output

  • In ra số lượng cặp ~\text{funny}~ tìm được.

Sample

Input #1
5
1 2 3 4 5
Output #1
1
Input #2
6
3 2 2 3 7 6
Output #2
3
Input #3
3
42 4 2
Output #3
0

Hint

Giải thích #2: có ~3~ cặp ~\text{funny}~: ~(2, 3), (1, 4), (3, 6)~


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.