atcoder#ABC150F. [ABC150F] Xor Shift

[ABC150F] Xor Shift

题目描述

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

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

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

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

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

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

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

输入格式

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

N N a0 a_0 a1 a_1 ... ... aN1 a_{N-1} b0 b_0 b1 b_1 ... ... bN1 b_{N-1}

输出格式

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

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

题目大意

题目描述

给定两个长度为 nn 的序列 a={a0,a1,,an1}a=\{a_0,a_1,\cdots,a_{n-1}\}b={b0,b1,,bn1}b=\{b_0,b_1,\cdots,b_{n-1}\},输出所有有序数对 (k,x)(k,x) ,满足:

  1. 0k<n0\leq k<nx0x\geq 0
  2. 序列 a=ba'=b,其中 $a'_i = a_{i+k\bmod n}\operatorname{xor} x\ (0\leq i<n)$,“xor\operatorname{xor}”表示按位异或。

输入格式

第一行一个整数 nn
第二行 nn 个整数,依次是 a0,a1,,an1a_0,a_1,\cdots,a_{n-1}
第三行 nn 个整数,依次是 b0,b1,,bn1b_0,b_1,\cdots,b_{n-1}

输出格式

输出所有满足条件有序对 (k,x)(k,x),每对占一行。如果没有满足条件的有序对,输出为空。

数据范围

1n2×1051\leq n\leq 2\times 10^50ai,bi<2300\leq a_i,b_i<2^{30}

3
0 2 1
1 2 3
1 3
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

提示

制約

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

Sample Explanation 1

(k,x)=(1,3) (k,x)=(1,3) のとき、 - a0=(a1 XOR 3)=1 a_0'=(a_1\ XOR\ 3)=1 - a1=(a2 XOR 3)=2 a_1'=(a_2\ XOR\ 3)=2 - a2=(a0 XOR 3)=3 a_2'=(a_0\ XOR\ 3)=3 となり、a a' b b と等しくなります。

Sample Explanation 4

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