fork(1) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long int
  4. int zero[31][100000];
  5. int one[31][100000];
  6. int a[100000];
  7. int main(){
  8. int n,q,l,r,x;
  9. cin >> n;
  10. cin >> q;
  11. for(int i=0;i<n;i++) cin >> a[i];
  12.  
  13. for(int i=0;i<31;i++){
  14. int co=0,cz=0;
  15. for(int j=0;j<n;j++){
  16. if((a[j] & (1 << i))>0) co++;
  17. else cz++;
  18. zero[i][j]=cz;
  19. one[i][j]=co;
  20. }
  21. }
  22.  
  23. for(int t=0;t<q;t++){
  24. cin >> l;
  25. cin >> r;
  26. cin >> x;
  27. l--;r--;
  28. ll ans=0;
  29. for(int i=0;i<31;i++){
  30. if((x & (1 << i))>0){
  31. if(l>0) ans+=(1ll*(zero[i][r]-zero[i][l-1])*(1<<i));
  32. else ans+=(1ll*(zero[i][r])*(1<<i));
  33. }
  34. else{
  35. if(l>0) ans+=(1ll*(one[i][r]-one[i][l-1])*(1<<i));
  36. else ans+=(1ll*(one[i][r])*(1<<i));
  37. }
  38. }
  39. cout << ans << endl;
  40. }
  41. }
Runtime error #stdin #stdout 0s 4276KB
stdin
Standard input is empty
stdout
Standard output is empty