配点 : 600 点
問題文
非負整数からなる長さ N の数列 a={a0,…,aN−1} と b={b0,…,bN−1} が与えられます。
すぬけ君は 0≤k<N を満たす整数 k と、0 以上の整数 x を決めて、新しく長さ N の数列 a′={a0′,…,aN−1′} を次のようにして作ります。
- ai′=ai+kmodN XOR x
a′ が b と等しくなるような (k,x) の組を全て求めてください。
$\text{ XOR }$ とは
整数 A,B のビットごとの排他的論理和 a XOR b は、以下のように定義されます。
- A XOR B を二進表記した際の 2k (k≥0) の位の数は、A,B を二進表記した際の 2k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3 XOR 5=6 となります (二進表記すると: 011 XOR 101=110 )。
制約
- 1≤N≤2×105
- 0≤ai,bi<230
- 入力中のすべての値は整数である。
入力
入力は以下の形式で標準入力から与えられる。
N
a0 a1 ... aN−1
b0 b1 ... bN−1
出力
a′ と b が等しくなるような (k,x) の組を、1 行に 1 組ずつ、k の昇順 (k が等しいものは x の昇順) にすべて出力せよ。
このような組が存在しない場合の出力は空でよい。
3
0 2 1
1 2 3
1 3
(k,x)=(1,3) のとき、
- a0′=(a1 XOR 3)=1
- a1′=(a2 XOR 3)=2
- a2′=(a0 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
条件を満たすような組が存在しないこともあります。