fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4.  
  5. int orSumOfPairs(int arr[] , int n){
  6. int ans = 0;
  7.  
  8. for(int i=0;i<32;i++){
  9. int countOne=0;
  10. int mask = (1<<i);
  11. if(arr[0] & mask)countOne++;
  12. for(int j=1;j<n;j++){
  13. int goodPair = 0;
  14. if(arr[j] & mask){
  15. countOne++;
  16. goodPair = j;
  17. }
  18. else{
  19. goodPair = countOne;
  20. }
  21. ans += (1<<i)*goodPair;
  22. }
  23. }
  24. return ans;
  25. }
  26.  
  27. int main() {
  28. int n;
  29. cin>>n;
  30. int arr[n];
  31. for(int i=0;i<n;i++){
  32. cin>>arr[i];
  33. }
  34.  
  35. cout<<orSumOfPairs(arr,n);
  36.  
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0.01s 5288KB
stdin
4
1 2 3 4
stdout
27