题目内容
输入格式
 输入第一行一个整数  
     
      
       
       
         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;
}
封面








![[英语单词] components;](https://img-blog.csdnimg.cn/81a2a1d1622a47d3bc441bd41973d0f1.png#pic_center)











