Ankit_132

D

Sep 24th, 2023
687
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.82 KB | None | 0 0
  1.  
  2. #include <bits/stdc++.h>
  3.  
  4. using namespace std;
  5.  
  6. #define ll     long long
  7.  
  8. int main()
  9. {
  10.     ll int MOD = 998244353;
  11.  
  12.     ll int n;
  13.     cin>>n;
  14.  
  15.     vector<ll int> a(n);
  16.     for(auto &e: a)     cin>>e;
  17.  
  18.     ll int ans = 0;
  19.  
  20.     for(int bit=0; bit<30; bit++)
  21.     {
  22.         ll int cntOdd = 0;
  23.         ll int cntEven = 0;
  24.         ll int totOdd = 0;
  25.         ll int totEven = 0;
  26.  
  27.         for(int i=0; i<n; i++)
  28.         {
  29.             if(((1ll<<bit)&a[i]) > 0)
  30.             {
  31.                 swap(cntEven, cntOdd);
  32.                 swap(totEven, totOdd);
  33.  
  34.                 cntOdd++;
  35.                 totOdd += i;
  36.             }
  37.             else
  38.                 cntEven++, totEven+=i;
  39.  
  40.             (ans += (1ll<<bit)*1ll*((((i+1)*1ll*cntOdd - totOdd)%MOD))) %= MOD;
  41.         }
  42.     }
  43.  
  44.     cout<<ans<<"\n";
  45. }
Advertisement
Add Comment
Please, Sign In to add comment