#AT1486. F - Xor Shift

F - Xor Shift

F - 异或变换

得到两个长度为N的非负整数序列a={a_0,...,a_{N-1}}和b={b_0,...,b_{N-1}}。

Snuke将选择一个整数k满足0≤k<N以及大于等于0的整数x,以如下方式构建长度为N的新的序列a'={a_0',...,a_{N-1}'}:

  • $a_i'= a_{i+k \mod N}\ XOR \ x$

找到所有满足a'=b的(k,x)对。

什么是XOR运算?

整数A和B的XOR运算A XOR B定义如下:

  • 当A XOR B用二进制表示时,二进制数的第k位(k≥0)是1当且仅当A或B中只有一个有1位的二进制数在第k位,否则为0。
例如,3 XOR 5 = 6。(用二进制表示为:011 XOR 101 = 110)

约束

  • $1 \leq N \leq 2 \times 10^5$
  • $0 \leq a_i,b_i < 2^{30}$
  • 输入的所有值都是整数。

输入

从标准输入中按以下格式给出输入:

NN

a0a_0 a1a_1 ...... aN1a_{N-1}

b0b_0 b1b_1 ...... bN1b_{N-1}

输出

以升序(按照k的升序,对于相同的k按照x的升序)的方式,每行输出一个满足条件的(k, x)对。

如果没有满足条件的(k, x)对,则输出为空。


3
0 2 1
1 2 3
1 3

如果$(k,x)=(1,3)$,

  • $a_0'=(a_1\ XOR \ 3)=1$

  • $a_1'=(a_2\ XOR \ 3)=2$

  • $a_2'=(a_0\ XOR \ 3)=3$

我们有$a' = b$。


5
0 0 0 0 0
2 2 2 2 2
0 2
1 2
2 2
3 2
4 2

6
0 1 3 7 6 4
1 5 4 6 2 3
2 2
5 5

2
1 2
0 0

没有满足条件的(k,x)对。