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; }

浙公网安备 33010602011771号