[Beginner Free Contest 45] VENDOR

Xem dạng PDF

Gửi bài giải

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

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

Từng làm sinh viên, ai cũng biết cạnh trường Đại học lúc nào cũng sẽ có một phố đồ ăn vặt.

Ta có thể coi dãy phố đó gồm các nhà được đánh số từ ~1~ tới ~n~, và quán thứ ~i~ có độ ngon là ~a_i~.

Tuy nhiên, không phải món nào ăn với nhau cũng phù hợp, nên khi ăn ở ~2~ quán khác nhau, độ ngon có thể "triệt tiêu" lẫn nhau.

Nên độ ngon khi ăn ở quán ~i~ và quán ~j~ sẽ là

~a_i~ XOR ~a_j~

(XOR là phép toán "hoặc loại trừ" trên bit.)

Theo nghiên cứu của tổ chức FC, sinh viên kì vọng độ ngon trải nghiệm được phải lớn hơn ~K~.

Tuy nhiên, sinh viên cũng có rất ít thời gian nên chỉ muốn ăn ở một dãy các quán liền nhau trên khu phố. Độ ngon của việc ăn các quán từ ~l~ tới ~r~ là:

~a_l~ XOR ~a_{l+1}~ XOR … XOR ~a_r~

Vậy nên nhiệm vụ của bạn là đếm xem có bao nhiêu cặp ~(l, r)~ sao cho độ ngon trải nghiệm được nếu ăn các quán từ ~l~ tới ~r~ lớn hơn ~K~.

Dữ liệu

  • Dòng thứ nhất ghi ~2~ số ~n~ và ~K~ ~(1 \le n \le 10^5,\ 0 \le K \le 2^{31} - 1)~.

  • Dòng thứ hai ghi ~n~ số ~a_1, a_2, \ldots, a_n~ ~(0 \le a_i \le 2^{31} - 1)~.

Kết quả

In ra số duy nhất là số cặp ~(l, r)~ thoả mãn yêu cầu trong đề bài.

Ví dụ

Sample Input 1

8 6
4 5 2 7 6 0 4 1

Sample Output 1

4

Sample Input 2

10 14
10 5 11 2 1 5 9 1 1 12

Sample Output 2

3

Chấm điểm

  • Subtask 1 (~20\%~ số test): ~n \le 1000~

  • Subtask 2 (~30\%~ số test): ~K \le 10~

  • Subtask 3 (~50\%~ 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.