题目内容
输入格式
输入第一行一个整数
n
n
n。
第二行
n
n
n 个整数
a
1
,
a
2
,
⋯
,
a
n
a_1, a_2, \cdots, a_n
a1,a2,⋯,an。
输出格式
输出一行一个整数表示答案。
样例 1 输入
5
6 2 3 4 7
样例 1 输出
7
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+114;
long long int n,a[N],ans=-0x3f3f;
long long int af[N],al[N];
int main(){
scanf("%d",&n);
//af[0]=1;al[n+1]=1;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(i==1) af[i]=a[i];
else af[i]=af[i-1]&a[i];
//cout<<af[i]<<" ";
}
//cout<<endl;
for(int i=n;i>=1;i--){
if(i==n) al[i]=a[i];
else al[i]=al[i+1]&a[i];
//cout<<al[i]<<" ";
}
//cout<<endl;
for(int i=1;i<n;i++){
ans=max(ans,af[i]+al[i+1]);
}
cout<<ans;
return 0;
}