Advertisement
fooker

Untitled

Nov 17th, 2022
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. ll bitvalue(ll x, ll y){
  5.     x=x/pow(2,y);
  6.     return x%2;
  7. }
  8. int main() {
  9.     // your code goes here
  10.     ios_base::sync_with_stdio(false);
  11.     cin.tie(nullptr);
  12.     cout.tie(nullptr);
  13.     int t;
  14.     cin>>t;
  15.     while(t--){
  16.         ll n,q;
  17.         cin>>n>>q;
  18.         ll a[65][n], countzero[64][n]={0}, countone[64][n]={0};
  19.         for (ll i=0; i<n; i++) cin>>a[64][i];
  20.         for (ll j=0; j<64; j++){
  21.             for (ll i=0; i<n; i++){
  22.                 a[j][i]=bitvalue(a[64][i],j);
  23.                 if (a[j][i]==0){
  24.                     countzero[j][i]=countzero[j][i-1]+1;
  25.                     countone[j][i]=countone[j][i-1];
  26.                 }
  27.                 if (a[j][i]==1){
  28.                     countone[j][i]=countone[j][i-1]+1;
  29.                     countzero[j][i]=countzero[j][i-1];
  30.                 }
  31.             }
  32.         }
  33.         while(q--){
  34.             ll k,l1,r1,l2,r2;
  35.             cin>>k>>l1>>r1>>l2>>r2;
  36.             if (l1>1 && l2>1){
  37.                 ll e=(countzero[k][r1-1]-countzero[k][l1-2])*(countone[k][r2-1]-countone[k][l2-2])+(countone[k][r1-1]-countone[k][l1-2])*(countzero[k][r2-1]-countzero[k][l2-2]);
  38.                 cout<<e<<"\n";
  39.             }
  40.             else {
  41.                 if (l1==1){
  42.                     ll e=(countzero[k][r1-1])*(countone[k][r2-1]-countone[k][l2-2])+(countone[k][r1-1])*(countzero[k][r2-1]-countzero[k][l2-2]);
  43.                     cout<<e<<"\n";
  44.                 }
  45.             }
  46.         }
  47.     }
  48.     return 0;
  49. }
  50.  
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement