题目描述
给定一个长度为 n 的整数数组 a1,a2,…,an。
你需要从中选择两个不同下标的元素 x 和 y(即 i=j),使得表达式 (x∣y)+(x&y) 的值最大。
请你计算并输出这个最大值。
输入格式
第一行包含一个整数 n,表示数组的长度。保证 n≥2。
第二行包含 n 个整数 a1,a2,…,an,相邻整数之间用一个空格隔开。
输出格式
输出一行一个整数,表示 (x∣y)+(x&y) 的最大值。
样例
3
1 2 3
5
样例解释
选择下标 i=2,j=3,对应 x=2,y=3,
x∣y=2∣3=3,
x&y=2&3=2,
(x∣y)+(x&y)=3+2=5。
5
-5 0 10 -3 7
17
样例解释
选择 x=10,y=7(下标不同),和为 17。可以验证没有其他两个不同元素之和更大。
数据范围与提示
- 2≤n≤105
- −109≤ai≤109