OJ现已增加邮箱找回密码功能,还没有绑定邮箱的同学们请抓紧时间,以免密码丢失无法找回


问题 G: B3Q的或运算

问题 G: B3Q的或运算

时间限制: 1 Sec  内存限制: 128 MB
提交: 74  解决: 16
[提交] [状态] [讨论版] [命题人:]

题目描述

B3Q决定出一道或运算的题目
或运算的定义
参加运算的两个对象,按二进制位进行“或”运算。

运算规则:0|0=0;  0|1=1;  1|0=1;   1|1=1;

     即 :参加运算的两个对象只要有一个为1,其值为1。

例如:3|5 即 00000011 | 00000101 = 00000111  因此,3|5的值得7。 

现在B3Q给你有n个数的序列arr,有一个操作A:选择一段区间[l,r](0=<l=<r<n),对于所有的 i (0=<i<=r-l),将arr[l+i]替换成 arr[l+i]|arr[r-i]
假设arr = {a1,a2,a3,a4,a5} 选择区间[1,4]进行操作A,有 arr = {a1|a4,a2|a3,a3|a2,a4|a1,a5}
你可以进行A操作无限次,请输出在进行A操作后arr中最大的值

输入

第一行一个数字n
接下来一行n个数字
题目保证
1=<n<=2e5
对于arr中每个数都是大于等于0的整数
且每个数小于等于1e5

输出

一个整数代表答案

样例输入 Copy

4
1 2 2 2

样例输出 Copy

3

提示

可以选择区间[1,3],得到1|2,2|2,2|1,2
即:3,2,3,2 接着进行A操作没有意义