CSES - Treap III
  • Time limit: 2.50 s
  • Memory limit: 256 MB

Tehtävänäsi on ylläpitää järjestettyä lukutaulukkoa, johon tehdään seuraavanlaisia päivityksiä: Annetaan luvut i ja x. Lue kohdassa i oleva luku ja lisää sen ja luvun x biteittäinen XOR taulukkoon sellaiseen kohtaan, että taulukko pysyy järjestyksessä. Taulukossa on aluksi vain luku 0.

Syöte

Ensimmäisellä rivillä on luku n, päivitysten määrä. Seuraavat n riviä sisältävät päivitykset: jokaisella rivillä ovat päivitystä kuvaavat luvut i ja x. Voit olettaa, että päivityksen aikaan taulukossa on vähintään i lukua.

Tuloste

Tulosta jokaista päivitystä kohti taulukkoon lisättävä luku omalla rivillään.

Rajat

  • 1\leq n \leq 5\cdot 10^5
  • 1\leq x < 2^{62}

Esimerkki

Syöte:

10
1 4
1 3
3 9
1 13
4 14
2 1
1 11
7 12
7 13
2 1

Tuloste:

4
3
13
13
3
2
11
1
6
0