#631. 神奇的二进制运算

神奇的二进制运算

题目背景

小郭终于踏入大学校门,充满期待地开启了计算机知识的奇妙探索之旅。前几天,他坐在计算机引论课堂上,老师生动地讲述了二进制的奥秘。这个新领域激发了小郭浓厚的兴趣,于是他下课后投入了更深入的学习。

今天,小郭的学习进程在探索按位或运算符时受到了一些阻碍,他颇费心思却依然难以理解其精髓。于是,小郭决定主动向老师请教,希望能够厘清心中的迷雾。老师欣然答应,并为了加深小郭对这一概念的理解,提出了一道复杂的问题。

题目描述

给定一个长度为 nn 的数组 aa

请从数组 aa 中选出任意个元素,使得所选元素互相 按位或 的值最大。

按位或运算符“ | ”是双目运算符,其功能是参与运算的两数各对应的二进位相比较, 只要对应的2个二进位有一个为1时,结果位就为1。

例:10的二进制为1010, 13的二进制为1101, 10 | 13的二进制结果为1111, 也就是15。

输入格式

第一行包含一个正整数 nn,代表数组长度。

第二行包含 nn 个正整数aia_i,代表数组中的元素。

输出格式

一个整数,表示按位或最大值。

样例 #1

样例输入 #1

5
6 2 7 5 3

样例输出 #1

7

样例 #2

样例输入 #2

3
8 6 4

样例输出 #2

14

提示

1<=n<=1051<=ai<=1091 <= n <= 10^5,1 <= a_i <= 10^9

所有答案均不会超出int范围。