Advertisement
fireLUFFY

XOR1=SUM

Sep 20th, 2021
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.62 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define int long long
  5. #define inf 2e18
  6. int MOD=1000000007;//998244353;
  7. const int nn=1000050;
  8. bool prime[nn];    //array to store precalculated primes till 10^6
  9. void cal_primes(){memset(prime,true,sizeof(prime)); for(int i=2;i<=sqrt(nn);++i){ if(prime[i]==true){ for(int j=i*i;j<=nn;j+=i){prime[j]=false;}}}}
  10.  
  11. void solve(int t)
  12. {
  13.     int testcases=t;
  14.     while(t--)
  15.     {
  16.         int n,q;cin>>n>>q;
  17.         vector<int>v(n);
  18.  
  19.         for(int i=0;i<n;i++)
  20.             cin>>v[i];
  21.  
  22.         while(q--){
  23.             int l,r;cin>>l>>r;
  24.             int count=0,rem=0,sum=0;
  25.             unordered_map<int,int>m;
  26.             m[0]++;
  27.  
  28.             for(int i=(l-1);i<r;i++){
  29.                 sum+=v[i];
  30.                 rem=(sum%2);
  31.  
  32.                 if(rem<0)
  33.                     rem+=2;
  34.  
  35.                 if(m[rem]){
  36.                     count+=m[rem];
  37.                     m[rem]++;
  38.                 }
  39.                 else{
  40.                     m[rem]++;
  41.                 }
  42.             }
  43.             cout<<count<<endl;
  44.         }
  45.     }
  46. }
  47.  
  48. main()
  49. {
  50.     auto start=chrono::system_clock::now();
  51.     {
  52.         // #ifndef ONLINE_JUDGE
  53.         //     freopen("input.txt","r",stdin);
  54.         //     freopen("output.txt","w",stdout);
  55.         //     freopen("error.txt","w",stderr);
  56.         // #endif    
  57.         ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  58.         int t=1;
  59.     //  cin>>t;
  60.         solve(t);
  61.     }
  62.     auto end=chrono::system_clock::now();
  63.     chrono::duration<double> elapsed=end-start;
  64. //  cout<<endl<<"Time taken: "<<elapsed.count()<<" sec";
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement