提交时间:2022-08-09 11:31:53

运行 ID: 55112

#include<bits/stdc++.h> using namespace std; typedef unsigned long long ll; ll t,a[200001],ans; ll cmp(ll a,ll b) { return a>b; } void f(ll &a,ll &b) { ll t=a; a=a&b; b=t|b; } inline ll qp(ll a,ll b) { ll ans=1; while(b) { if(b&1) ans*=a; a*=a; b>>=1; } return ans; } int main() { cin>>t; for(int i=0;i<t;i++) cin>>a[i]; if(t==1) cout<<qp(a[0],2)<<endl,exit(0); if(t==2){ f(a[0],a[1]); cout<<qp(a[0],2)+qp(a[1],2)<<endl,exit(0); } sort(a,a+t,cmp); for(ll i=0;i<t;i++) f(a[i],a[i+1]); for(ll i=0;i<=t;i++) ans+=qp(a[i],2); cout<<ans<<endl; return 0; }