#abc291g. [abc291_g]OR Sum
[abc291_g]OR Sum
問題文
長さ の数列 と が与えられます。
また、高橋君は数列 に対して、次の操作を好きな回数 ( 回でもよい) 行う事ができます。
- を つ左にシフトする、すなわち、 を、A'_i=A_{(i+1)\\% N} で定義される で置き換える。ただし、 で、 を で割った余りを表す。
高橋君の目的は を最大化することです。ただし、 で と のビット毎の論理和(bitwise OR)を表します。
の値としてあり得る最大の値を求めてください。
ビット毎の論理和(bitwise OR)とは ビットの数字 ( または ) の組に対して下の表で定義される演算を論理和(またはOR演算)といいます。
ビット毎に論理和を適用する演算を**ビット毎の論理和(bitwise OR)**といいます。
論理和ではビット , の少なくとも一方が の場合に結果が となります。 逆に言うと、共に の場合のみ結果が となります。
具体例
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
高橋君が一度も操作を行わなかった時、 は のままであり、$\\displaystyle\\sum_{i=0}^{N-1} (A_i|B_i)=(0|0)+(1|2)+(3|3)=0+3+3=6$,
高橋君が 回操作を行った時、 となり、$\\displaystyle\\sum_{i=0}^{N-1} (A_i|B_i)=(1|0)+(3|2)+(0|3)=1+3+3=7$,
高橋君が 回操作を行った時、 となり、$\\displaystyle\\sum_{i=0}^{N-1} (A_i|B_i)=(3|0)+(0|2)+(1|3)=3+2+3=8$
となります。 回以上操作を行った時、 は上記のいずれかの形になるため、 の最大値は であり、 を出力します。
入力例 2
5
1 6 1 4 3
0 6 4 0 1
出力例 2
23
最大となるのは高橋君が 回操作を行った時であり、この時 となり、
$\\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$ となります。