Advertisement
Zeinab_Hamdy

Untitled

Apr 6th, 2024
770
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.23 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define nl "\n"
  4. #define fi first
  5. #define se second
  6. #define pb push_back
  7. #define ll long long
  8. #define ull unsigned ll
  9. #define RV  return void
  10. #define sz(x) int(x.size())
  11. #define all(v) v.begin(), v.end()
  12. #define rall(v) v.rbegin(), v.rend()
  13. #define fixed(n) fixed << setprecision(n)
  14. #define cin(v) for (auto&i:v) cin >> i;
  15. #define cout(v) for (auto&i:v) cout << i << " ";
  16. #define clr(memo, x) memset(memo, x, sizeof memo)
  17. #define FastCode ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
  18.  
  19. void  Zainab(){
  20.             // #ifndef ONLINE_JUDGE
  21.               // freopen("hobz.in", "r", stdin);
  22.               // freopen("longpath.out", "w", stdout);
  23.             // #endif
  24. }
  25.  
  26.  
  27.  
  28.  
  29. void myCode( ){
  30.  
  31.    
  32. ll n ,q;
  33. cin >> n >> q;
  34. vector < ll > v(n);
  35. cin(v);
  36.  
  37. //  if len of subarray even => take Xor for all element exactly once
  38.  
  39.  
  40. //  odd length => 1 (1)
  41. //                3 (101)  
  42. //                5(10101)  
  43.  
  44. vector < ll > prefEven(n+1) , prefodd0(n+1) , prefodd1(n+1);
  45.  
  46. for(int i =0 ; i < n ; i++){
  47.     prefEven[i] = v[i];
  48.     if(i)
  49.         prefEven[i] ^= prefEven[i-1];
  50. }
  51.  
  52. for(int i =0 ; i < n ; i++){
  53.     if(i % 2  )
  54.         prefodd0[i] = v[i];
  55.     if(i)
  56.         prefodd0[i] ^= prefodd0[i-1];
  57. }
  58.  
  59. for(int i =0 ; i < n ; i++){
  60.     if(i % 2==0)
  61.         prefodd1[i] = v[i];
  62.     if(i)
  63.         prefodd1[i] ^= prefodd1[i-1];
  64. }
  65.  
  66.  
  67.  
  68. while(q--){
  69.     ll l , r;
  70.     cin >> l >> r;
  71.     ll len = r-l+1;
  72.     l--; r--;
  73.     if(len % 2 ==0){
  74.         ll tx =0;
  75.         if(l)
  76.             tx = prefEven[l-1];
  77.         cout <<  (prefEven[r] ^ tx) << nl;
  78.     }
  79.    
  80.     else{
  81.         if( (l+1)  % 2 ){
  82.             ll tx =0;
  83.             if(l)
  84.                 tx = prefodd1[l-1];
  85.             cout <<  (prefodd1[r] ^ tx) << nl;
  86.         }
  87.         else{
  88.             ll tx =0;
  89.             if(l)
  90.                 tx = prefodd0[l-1];
  91.             cout <<  (prefodd0[r] ^ tx) << nl;
  92.         }
  93.     }
  94.    
  95. }
  96.    
  97.  
  98. }
  99.  
  100.  
  101. int main(){
  102.                                   FastCode ;
  103.                                    // Zainab();
  104.  
  105.     int testCase=1;
  106.       cin >> testCase ;
  107.       for(int i=1 ; i<= testCase ; i++)
  108.         myCode();
  109.  
  110.     return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement