如果输入是:16 1 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 65535则输出是:(
#include <iostream>
using namespace std;
int num[100000];
int g(int a) {
int ans = 0, m = 0;
while(a) {
if((a & 1) == 0)
ans |= 1 << m;
m++;
a >>= 1;
}
return ans;
}
int main() {
int n, res = 0;
cin >> n;
for(int i = 0; i < n; i++) cin >> num[i];
for(int i = 0; i < n; i++) num[i] = g(num[i]);
for(int i = 0; i < 31; i++) {
int k = 0;
for (int j = 0; j < n; j++) {
if ((num[j] >> i) & 1 == 1) k++;
}
res += k * (n - k);
}
cout << res;
return 0;
}
A.680
B.0
C.637
D.706