Într-o zi din vacanța de iarnă, Lulu se plictisea și a decis că e timpul să rezolve o problemă de informatică din tema de vacanță. Aceasta sună în felul următor:
"Se dau numere naturale asupra cărora se pot efectua doar două operații:
1 x y val
: toate numerele de pe pozițiile , , , ..., , devin egale cu ;2 x y
: se cere suma XOR a numerelor de pe pozițiile , , , ..., , .
Se dă și un număr natural , apoi operații care pot fi de tipul 1 sau 2. Se cere să se răspundă corect la toate operațiile de tipul 2."
Cerință
Pentru că Lulu este un copil leneș, vă roagă să rezolvați voi problema în locul lui, iar dacă reușiți să o rezolvați corect, Lulu vă va oferi în schimb o pungă de jeleuri.
Date de intrare
Prima linie va conține numărul de elemente. Pe a doua linie se vor afla cele numere naturale asupra cărora se vor efectua cele două operații. A treia linie va conține numărul de operații pe șir, apoi, pe următoarele linii, se vor regăsi operațiile descrise conform enunțului.
Date de ieșire
Se vor afișa, pe linii separate, răspunsurile la toate întrebările de tipul 2.
Restricții
- ;
- Valorile din query-uri se vor încadra în tipuri de date pe 32 de biți;
- Se va respecta ordinea query-urilor!
- Din cauza dimensiunii mari a datelor de intrare, se recomandă utilizarea următoarelor instrucțiuni la începutul funcției main() (limbaj C++):
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
Subtask 1: 20 puncte
- .
Subtask 2: 80 puncte
- Fără restricții suplimentare.
Exemple
stdin
3
1 2 3
2
1 1 2 4
2 1 3
stdout
3