8800 烹饪问题 排序基础 简单枚举 位运算 GESP C++ 五级 23年12月

 

 

 

#include<bits/stdc++.h>
#define f(i,s,e) for(int i=s;i<=e;i++)
using namespace std;
typedef long long ll;
const int N=1e6+10,inf=0x3f3f3f3f;
int a[N],n; 
int main(){
    cin>>n;
    f(i,1,n){
        scanf("%d",&a[i]);
    }
    sort(a+1,a+1+n);
    int ans1=(a[n]&a[n-1]); //获取最后1、2个位运算的结果
    int ans2=(a[n-1]&a[n-2]); //获取最后2,3个位运算的结果
    cout<<max(ans1,ans2); //比较得到最大值,理论上来说,如果不是本题的数据小,可能还需要继续比较第3,4,5...个的结果
    return 0;
}

 

posted @ 2024-06-28 15:08  CRt0729  阅读(110)  评论(0)    收藏  举报