Promi_38

cf 339D

Nov 25th, 2021
751
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. long long n, i, tree[9999999];
  6.  
  7. void ans(int id)
  8. {
  9.     int lvl = 1;
  10.     while(id > 0)
  11.     {
  12.         if(lvl % 2 == 1) tree[id] = tree[id*2] | tree[id*2 + 1];
  13.         else tree[id] = tree[id*2] ^ tree[id*2 + 1];
  14.         lvl++;
  15.         id /= 2;
  16.     }
  17. }
  18.  
  19. int main()
  20. {
  21.     long long q;
  22.     cin >> n >> q;
  23.     n = 1 << n;
  24.     //printf("n %lld\n", n);
  25.     long long x;
  26.     for(i = n; i < 2*n; i++)
  27.     {
  28.         cin >> tree[i];
  29.         ans(i/2);
  30.     }
  31.  
  32.     while(q--)
  33.     {
  34.         long long p, b;
  35.         cin >> p >> b;
  36.         tree[p+n-1] = b;
  37.         ans((p+n-1)/2);
  38.         cout << tree[1] << endl;
  39.     }
  40.    
  41. }
RAW Paste Data