第26567题
求数组中两两元素的最大按位与值

时间限制:1.0 s

内存限制:128.0 MB

问题描述

有N种食材,编号从0至N-1,其中第i种食材的美味度为a_i。 不同食材之间的组合可能产生奇妙的化学反应。具体来说,如果两种食材的美味度分别为x和y,那么它们的契合度为x and y。 其中,and运算为按位与运算,需要先将两个运算数转换为二进制,然后在高位补足0,再逐位进行与运算。例如,12与6的二进制表示分别为 1100 和 0110 ,逐位与运算得到 0100 ,转换为十进制为4,因此12 and 6=4。在 C++ 或 Python 中,可以直接使用 & 运算符表示与运算。 现在,请你找到契合度最高的两种食材,并输出它们的契合度。

输入描述

第一行一个整数N,表示食材的种数。 接下来一行N个用空格隔开的整数,依次为a0,…,a{N-1},表示各种食材的美味度。

输出描述

输出一行一个整数,表示最高的契合度。

特别提醒:在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

样例输入 1

3
1 2 3

样例输出 1

2

样例解释 1

编号为1、2的食材之间的契合度为2 & 3=2,是所有食材两两之间最高的契合度。

样例输入 2

5
5 6 2 10 13

样例输出 2

8

样例解释 2

编号为3、4的食材之间的契合度为10 & 13=8,是所有食材两两之间最高的契合度。

数据规模

对于40%的测试点,保证N≤1000; 对于所有测试点,保证N≤10^6,0≤a_i≤2147483647。