#abc291g. [abc291_g]OR Sum
[abc291_g]OR Sum
问题描述
有长度为的序列 和 。
Takahashi可以对执行以下操作任意次数(可能为零):
- 对序列进行左循环移位。换句话说,用A'_i=A_{(i+1)\\% N}替换,其中表示除以的余数。
Takahashi的目标是最大化 ,其中 表示 和 的按位逻辑和(按位或)。
找出可能的最大值 。
什么是按位逻辑和(按位或)? 逻辑和(或运算)是一种对两个一位整数( 或 )的运算,定义如下表:
**按位逻辑和(按位或)**是将逻辑和应用于每个位上的运算。
如果至少有一个位 和 是 ,则逻辑和为 。只有当它们都是 时,逻辑和才为 。
示例
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
如果 Takahashi 不执行操作, 保持为 ,我们有 $\\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$。