Advertisement
Zeinab_Hamdy

Untitled

Sep 15th, 2024
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. //  #### Zeinab
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. #define nl "\n"
  5. #define fi first
  6. #define se second
  7. #define pb push_back
  8. #define ll long long
  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 cin(v) for(auto&x:v) cin >> x;
  14. #define cout(v) for(auto&x:v) cout << x << " ";
  15.  
  16.  
  17.  
  18. void solve(){
  19.  
  20.     int n ; cin >> n;
  21.     vector < int > v(n);
  22.     cin(v);
  23.  
  24.     map < int , int > mp;
  25.     mp[0] = 0;
  26.     int Xor =0;
  27.     vector < pair < int , int > > pref(n+1);
  28.    
  29.     for(int i =0 ; i < n ; i++){
  30.         Xor ^= v[i];
  31.         if(mp.find(Xor) != mp.end()){
  32.             pref[mp[Xor]].fi ++; // open  interval
  33.             pref[i].se ++; // close interval
  34.         }
  35.         mp[Xor] = i+1;
  36.     }
  37.  
  38.     for(int i =1 ; i < n ; i++){
  39.         pref[i].fi += pref[i-1].fi;
  40.         pref[i].se += pref[i-1].se;
  41.     }
  42.  
  43.  
  44.     int q , l , r; cin >> q;
  45.     while(q--){
  46.         cin >> l >> r;
  47.         l-- , r--;
  48.         int val = pref[r].fi , val2 = pref[r].se ;
  49.         if(l) {
  50.             val -= pref[l-1].fi;
  51.             val2 -= pref[l-1].se;
  52.         }
  53.         cout << ( val > 0 and val2 > 0 ? "YES" : "NO") << nl;
  54.     }
  55.    
  56.  
  57. }
  58.  
  59. int main(){
  60.     ios_base::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);  
  61.  
  62.  
  63.     int t=1;
  64.         // cin >> t ;
  65.     for(int i=1 ; i <= t ; i++){
  66.         // cout << "Case #"<< i <<": ";
  67.         solve();
  68.     }
  69.     return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement