XORanges#9045

XORanges

1 saniyə
128 meqabayt
Çətin

Жанез portağalları çox sevir! Buna görə də o, portağalları skan etmək üçün bir cihaz hazırlayıb. Kamera və Raspberry Pi 3b+ kompüteri vasitəsilə o, portağalların 3D şəkillərini yaratmağa başlayıb. Onun şəkil prosessoru çox güclü deyil, buna görə də o, yalnız qabığın üzərindəki deşiklər haqqında məlumat verən bitlik tam ədəd alır. Bu bitlik tam ədəd , rəqəmdən (bitdən) ibarət ardıcıllıq şəklində təqdim olunur, hər biri ya bir, ya da sıfırdır. Əgər -dan başlasaq, hər bir -ci biti bir olan üçün 2^i əlavə edərək ədəd əldə edə bilərik. Daha dəqiq desək, d_{31}, d_{30}, ..., d_0 ardıcıllığı şəklində təqdim olunur, burada D = d_{31} \cdot 2^{31} + d_{30} \cdot 2^{30} + ... + d_1 \cdot 2^1 + d_0 \cdot 2^0. Məsələn, 0, ..., 0, 1, 1, 0, 1 kimi təqdim olunur.

Жанез portağalı skan etdi; lakin bəzən o, proqramınızın icrası zamanı bir portağalı (-ci portağalı) yenidən skan etməyə qərar verir. Bu o deməkdir ki, bu skanlamadan başlayaraq o, -ci portağal üçün yenilənmiş dəyəri istifadə edir.

Жанез bu portağalları təhlil etmək istəyir. O, XOR (eksklüziv VƏ YA) əməliyyatını çox maraqlı hesab edir, buna görə də bəzi hesablamalar aparmağa qərar verir. O, -dən -ya qədər portağalların bir aralığını seçir (burada l \le u) və bu aralıqdakı bütün elementlərin, bu aralıqdakı ardıcıl elementlərin bütün cütlərinin, ardıcıl elementdən ibarət bütün ardıcıllıqların və s., u - l + 1 ardıcıl elementdən ibarət ardıcıllığa (aralıqdakı bütün elementlərə) qədər olan XOR dəyərini bilmək istəyir.

Əgər l = 2 və u = 4-dürsə və skan edilmiş dəyərlərdən ibarət massivimiz varsa, proqram a_2 \oplus a_3 \oplus a_4 \oplus (a_2 \oplus a_3) \oplus (a_3 \oplus a_4) \oplus (a_2 \oplus a_3 \oplus a_4) dəyərini qaytarmalıdır, burada XOR əməliyyatını təmsil edir və a_i massivindəki -ci elementi təmsil edir.

XOR əməliyyatını belə təyin edək:

Məsələn, 13 \oplus 23 = 26.

Giriş

Birinci sətirdə və q~(0 < n, q \le 2 \cdot 10^5) iki müsbət tam ədəd var (ümumi yenidən skan etmə və sorğu — əməliyyatlar sayı).

Növbəti sətirdə qeyri-mənfi tam ədəd var, bu ədədlər massivinin dəyərlərini (portağalların skan nəticələrini) təmsil edir. a_i~(a_i \le 10^9) elementi -ci portağal üçün dəyəri ehtiva edir. İndeks -dən başlayır.

Əməliyyatlar növbəti sətirdə üç müsbət tam ədəd ilə təsvir olunur.

Əgər əməliyyat tipi -dirsə (yenidən skan etmə), birinci tam ədəd -ə bərabərdir, sonra (Жанезin yenidən skan etmək istədiyi portağalın indeksi) və (yenidən skan edilmiş -ci portağalın nəticəsi) gəlir.

Əgər əməliyyat tipi -dirsə (sorğu), birinci tam ədəd -ə bərabərdir, sonra və gəlir.

Çıxış

Hər bir sorğu üçün ayrı sətirdə bir tam ədəd çıxarın. Qeyd edək ki, çıxışın -ci sətiri -ci sorğunun nəticəsinə uyğun olmalıdır.

Nümunələr

Misal 1 üçün izah.

Əvvəlcə A = [1, 2, 3]. Birinci sorğu bütün aralığı əhatə edir. Nəticə 1 \oplus 2 \oplus 3 \oplus (1 \oplus 2) \oplus (2 \oplus 3) \oplus (1 \oplus 2 \oplus 3) = 2 olacaq.

Sonra birinci portağalın dəyəri -ə yenilənir. Bu, eyni sorğu üçün nəticəni dəyişdirir (aralıqda ): 3 \oplus 2 \oplus 3 \oplus (3 \oplus 2) \oplus (2 \oplus 3) \oplus (3 \oplus 2 \oplus 3) = 0.

Nümunə 1

Loading
Loading

Nümunə 2

Loading
Loading