Lang:G++
Edit123456789101112131415161718192021222324252627282930#include <cstdio>#include <cstring>using namespace std;int main(void){int c[32], b[32];memset(c, 0, sizeof(c));for (int i = 0; i < 32; ++i)b[i] = (1 << i);int nN;scanf("%d", &nN);for (int i = 0; i < nN; ++i){int x;scanf("%d", &x);for (int j = 0; j < 32; ++j)c[j] += int((x&b[j]) != 0);}long long nDist = 0;for (int i = 0; i < 32; ++i){long long s = nN;s -= c[i];s *= c[i];nDist += s;}printf("%lld\n", nDist);return 0;}