[BOJ 11840] XOR
View as PDFYou are given numbers N, x and a sequence of N numbers. Find the largest possible interval of consequently following elements, such that "xor"of these elements is not less than x. I.e., more formally, find such i and k that</p>
ai ⊕ ai+1 ⊕ · · · ⊕ ai+k−1 ≥ x, 1 ≤ i ≤ i + k − 1 ≤ N, and k is largest possible positive number.
It's guaranteed that for each test from the testset such an interval exists.
We remind you that xor(⊕) operation is applied to numbers in binary representation, so that for each pair of bits the following is true:
- 0 ⊕ 0 = 0
- 0 ⊕ 1 = 1
- 1 ⊕ 0 = 1
- 1 ⊕ 1 = 0
The result of this operation doesn't depend on the order of operands a⊕b = b⊕a. Moreover (a⊕(a⊕b)) = b.
In Pascal this operation is represented as xor. In C/C++/Java as ∧.
입력 형식
The first line of input contains N (1 ≤ N ≤ 250 000) and x (0 ≤ x ≤ 1 000 000 000). The second line of input contains N non-negative numbers not exceeding 109.
출력 형식
The first line of output must contain two numbers: i and k. In case of many solutions output the one with the smallest i.
예제 입력
4 6
6 1 2 4
예제 출력
2 3
Comments