#abc150f. [abc150_f]Xor Shift

[abc150_f]Xor Shift

問題文

非負整数からなる長さ NN の数列 a=a0,ldots,aN1a=\\{a_0,\\ldots,a_{N-1}\\}b=b0,ldots,bN1b=\\{b_0,\\ldots,b_{N-1}\\} が与えられます。

すぬけ君は 0leqk<N0 \\leq k < N を満たす整数 kk と、00 以上の整数 xx を決めて、新しく長さ NN の数列 a=a0,ldots,aN1a'=\\{a_0',\\ldots,a_{N-1}'\\} を次のようにして作ります。

  • ai=ai+kmodNXORxa_i'= a_{i+k \\mod N}\\ XOR \\ x

aa'bb と等しくなるような (k,x)(k,x) の組を全て求めてください。

textXOR\\text{ XOR } とは

整数 A,BA, B のビットごとの排他的論理和 atextXORba \\text{ XOR } b は、以下のように定義されます。

  • AtextXORBA \\text{ XOR } B を二進表記した際の 2k2^k (kgeq0k \\geq 0) の位の数は、A,BA, B を二進表記した際の 2k2^k の位の数のうち一方のみが 11 であれば 11、そうでなければ 00 である。

例えば、3textXOR5=63 \\text{ XOR } 5 = 6 となります (二進表記すると: 011textXOR101=110011 \\text{ XOR } 101 = 110 )。

制約

  • 1leqNleq2times1051 \\leq N \\leq 2 \\times 10^5
  • 0leqai,bi<2300 \\leq a_i,b_i < 2^{30}
  • 入力中のすべての値は整数である。

入力

入力は以下の形式で標準入力から与えられる。

NN a0a_0 a1a_1 ...... aN1a_{N-1} b0b_0 b1b_1 ...... bN1b_{N-1}

出力

aa'bb が等しくなるような (k,x)(k,x) の組を、11 行に 11 組ずつ、kk の昇順 (kk が等しいものは xx の昇順) にすべて出力せよ。

このような組が存在しない場合の出力は空でよい。


入力例 1

3
0 2 1
1 2 3

出力例 1

1 3

(k,x)=(1,3)(k,x)=(1,3) のとき、

  • a0=(a1XOR3)=1a_0'=(a_1\\ XOR \\ 3)=1

  • a1=(a2XOR3)=2a_1'=(a_2\\ XOR \\ 3)=2

  • a2=(a0XOR3)=3a_2'=(a_0\\ XOR \\ 3)=3

となり、aa'bb と等しくなります。


入力例 2

5
0 0 0 0 0
2 2 2 2 2

出力例 2

0 2
1 2
2 2
3 2
4 2

入力例 3

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

出力例 3

2 2
5 5

入力例 4

2
1 2
0 0

出力例 4

条件を満たすような組が存在しないこともあります。