提交时间:2022-08-09 11:41:25
运行 ID: 55161
#include <bits/stdc++.h> using namespace std; typedef unsigned long long ll; ll a[200000],sum; int n; inline ll read() //以字符串形式读入数字可提速 { ll x=0; char c=getchar(); for(; c<'0' || c>'9'; c=getchar()); for(; c<='9' && c>='0'; c=getchar()) x=(x<<3)+(x<<1)+c-'0'; //位运算优化即x*8+x*2=x*10 return x; } inline void dg() { for(int i=1; i<n; i++) { for(int j=1; j<=n; j++) { ll s=(a[i]&a[j]),t=(a[i]|a[j]); if((s*s+t*t)>(a[i]*a[i]+a[j]*a[j])) a[i]=s,a[j]=t; } } } int main() { n=read(); for(int i=1; i<=n; i++) a[i]=read(); dg(); for(int i=1; i<=n; i++) sum+=(a[i]*a[i]); printf("%lld",sum); return 0; }