Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
55160 | luhongyv | 线性基 (basis) | C++ | 编译错误 | 0 | 0 MS | 0 KB | 855 | 2022-08-09 11:41:13 |
2 #include<bits/stdc++.h> using namespace std; #define int long long int num[200001]; inline int read() { int 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'; return x; } main() { int n,ans=0,x,y; n=read(); if(n==2) { int b,c; b=read(); c=read(); if(b!=c) { int x=c; c=(b | c); b=(b & x); cout<<pow(b,2)+pow(c,2)<<endl; return 0; } else { cout<<pow(b,2)+pow(c,2)<<endl; return 0; } } else { for(int i=0;i<n;i++) { num[i]=read(); ans+=pow(num[i],2); } for(int i=0;i<n;i++) for(int j=i;j<n;j++) { x=(num[i] & num[j]); y=(num[i] | num[j]); ans=max(ans,ans-num[i]*num[i]-num[j]*num[j]+x*x+y*y); } } cout<<ans<<endl; return 0; }