#7381. 最大的位运算和

最大的位运算和

题目描述

给定一个长度为 nn 的整数数组 a1,a2,,ana_1, a_2, \dots, a_n
你需要从中选择两个不同下标的元素 xxyy(即 iji \neq j),使得表达式 (xy)+(x&y)(x \mid y) + (x \mathbin{\&} y) 的值最大。
请你计算并输出这个最大值。

输入格式

第一行包含一个整数 nn,表示数组的长度。保证 n2n \ge 2
第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n,相邻整数之间用一个空格隔开。

输出格式

输出一行一个整数,表示 (xy)+(x&y)(x \mid y) + (x \mathbin{\&} y) 的最大值。

样例

3
1 2 3
5

样例解释

选择下标 i=2,j=3i=2, j=3,对应 x=2,y=3x=2, y=3
xy=23=3x \mid y = 2 \mid 3 = 3
x&y=2&3=2x \mathbin{\&} y = 2 \mathbin{\&} 3 = 2
(xy)+(x&y)=3+2=5(x \mid y) + (x \mathbin{\&} y) = 3 + 2 = 5

5
-5 0 10 -3 7
17

样例解释

选择 x=10,y=7x = 10, y = 7(下标不同),和为 1717。可以验证没有其他两个不同元素之和更大。

数据范围与提示

  • 2n1052 \le n \le 10^5
  • 109ai109-10^9 \le a_i \le 10^9