Masala #R107F

Xotira 256 MB Vaqt 1000 ms Qiyinchiligi 40 %
14

  

O’suvchi daraxt

Siz o‘sib boruvchi daraxt bilan ishlayapsiz.

Dastlab daraxtda faqatgina 1-tugun (vertex) mavjud bo‘lib, u ildiz (root) hisoblanadi.
Har bir tugunda uning qiymati yozilgan.

Sizga ketma-ket so‘rovlar beriladi. Ularni berilgan tartibda bajarib borish kerak.
Ba’zi so‘rovlar daraxtni kengaytiradi, ba’zilari esa daraxtning ma’lum bir qismi ustida savol beradi.


Kiruvchi ma'lumotlar:

Kirish faylining birinchi qatorida ikkita butun son \( Q, S \) — so‘rovlar soni va birinchi tugunning qiymati kiritiladi.

Keyingi \( Q \) ta qatorning har birida quyidagi so‘rovlarning biri kiritiladi:

  • \( 1\ p\ x \) — qiymati \( x \) bo‘lgan yangi tugun \( p \) tartib raqamli tugunga ulanadi.
    Bunda yangi qo‘shilgan tugun tartib raqami \( t + 1 \) deb belgilanadi, bu yerda \( t \) — ayni vaqtdagi daraxtdagi tugunlar soni.
  • \( 2\ v \) — tartib raqami \( v \) bo‘lgan tugunning qism daraxtidan (subtree)
    bo‘sh bo‘lmagan shunday tugunlar to‘plamini tanlangki, ushbu tugunlardagi qiymatlarning
    umumiy XOR qiymati minimal bo‘lsin, boshqacha aytganda: 
    \( k = val_{p_1} \oplus val_{p_2} \oplus \dots \oplus val_{p_l}, \; p_i \in S \)
    Bu yerda:
    \( S \) — \( v \) tugunining qism daraxtidagi tanlangan tugunlar to‘plami,
    \( val_i \) — \( i \)-tugunning qiymatini bildiradi.

Cheklovlar:
\( 1 \le Q \le 2 \times 10^5 \)
\( 0 \le S, x \le 10^9 \)

Barcha so‘rovlarda \( p \) va \( v \) tugunlari mavjudligi va to‘g‘riligiga kafolatlanadi.


Chiquvchi ma'lumotlar:

Har bir ikkinchi turdagi so‘rov uchun minimal XOR qiymatini toping.


Misollar
# input.txt output.txt
1
10 7
1 1 5
2 1
1 2 6
2 1
1 3 14
1 1 5
2 3
1 5 0
1 5 7
2 5
2
1
6
0
Yechimini yuborish
Bu amalni bajarish uchun tizimga kiring, agar profilingiz bo'lmasa istalgan payt ro'yxatdan o'tishingiz mumkin