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, PyPy, 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