#abc291g. [abc291_g]OR Sum

[abc291_g]OR Sum

問題文

長さ NN の数列 A=(A0,A1,ldots,AN1)A=(A_0,A_1,\\ldots,A_{N-1})B=(B0,B1,ldots,BN1)B=(B_0,B_1,\\ldots,B_{N-1}) が与えられます。
また、高橋君は数列 AA に対して、次の操作を好きな回数 ( 00 回でもよい) 行う事ができます。

  • AA11 つ左にシフトする、すなわち、AA を、A'_i=A_{(i+1)\\% N} で定義される AA' で置き換える。ただし、xx\\% N で、xxNN で割った余りを表す。

高橋君の目的は displaystylesumi=0N1(AiBi)\\displaystyle\\sum_{i=0}^{N-1} (A_i|B_i) を最大化することです。ただし、xyx|yxxyy のビット毎の論理和(bitwise OR)を表します。

displaystylesumi=0N1(AiBi)\\displaystyle\\sum_{i=0}^{N-1} (A_i|B_i) の値としてあり得る最大の値を求めてください。

ビット毎の論理和(bitwise OR)とは 11 ビットの数字 (00 または 11) の組に対して下の表で定義される演算を論理和(またはOR演算)といいます。
ビット毎に論理和を適用する演算を**ビット毎の論理和(bitwise OR)**といいます。

xx

yy

xyx|y

00

00

00

00

11

11

11

00

11

11

11

11

論理和ではビット xx, yy の少なくとも一方が 11 の場合に結果が 11 となります。 逆に言うと、共に 00 の場合のみ結果が 00 となります。

具体例
0110 | 0101 = 0111```

### 制約

*   $2 \\leq N \\leq 5\\times 10^5$
*   $0\\leq A_i,B_i \\leq 31$
*   入力はすべて整数

* * *

### 入力

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

$N$
$A_0$ $A_1$ $\\ldots$ $A_{N-1}$
$B_0$ $B_1$ $\\ldots$ $B_{N-1}$

### 出力

$\\displaystyle\\sum_{i=0}^{N-1} (A_i|B_i)$ の値としてあり得る最大の値を出力せよ。

* * *

### 入力例 1

```plain
3
0 1 3
0 2 3

出力例 1

8

高橋君が一度も操作を行わなかった時、AA(0,1,3)(0,1,3) のままであり、$\\displaystyle\\sum_{i=0}^{N-1} (A_i|B_i)=(0|0)+(1|2)+(3|3)=0+3+3=6$,
高橋君が 11 回操作を行った時、A=(1,3,0)A=(1,3,0) となり、$\\displaystyle\\sum_{i=0}^{N-1} (A_i|B_i)=(1|0)+(3|2)+(0|3)=1+3+3=7$,
高橋君が 22 回操作を行った時、A=(3,0,1)A=(3,0,1) となり、$\\displaystyle\\sum_{i=0}^{N-1} (A_i|B_i)=(3|0)+(0|2)+(1|3)=3+2+3=8$
となります。33 回以上操作を行った時、 AA は上記のいずれかの形になるため、displaystylesumi=0N1(AiBi)\\displaystyle\\sum_{i=0}^{N-1} (A_i|B_i) の最大値は 88 であり、88 を出力します。


入力例 2

5
1 6 1 4 3
0 6 4 0 1

出力例 2

23

最大となるのは高橋君が 33 回操作を行った時であり、この時 A=(4,3,1,6,1)A=(4,3,1,6,1) となり、
$\\displaystyle\\sum_{i=0}^{N-1} (A_i|B_i)=(4|0)+(3|6)+(1|4)+(6|0)+(1|1)=4+7+5+6+1=23$ となります。