[BOJ 11840] XOR

View as PDF

Submit solution

Points: 4
Time limit: 5.0s
Memory limit: 256M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

You 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

There are no comments at the moment.