Vacanta

Time limit: 1s Memory limit: 64MB Input: Output:

Î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 NN numere naturale asupra cărora se pot efectua doar două operații:

  1. 1 x y val: toate numerele de pe pozițiile xx, x+1x+1, x+2x+2, ..., y1y-1, yy devin egale cu valval;
  2. 2 x y: se cere suma XOR a numerelor de pe pozițiile xx, x+1x+1, x+2x+2, ..., y1y-1, yy.

Se dă și un număr natural QQ, apoi QQ 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 NN de elemente. Pe a doua linie se vor afla cele NN numere naturale asupra cărora se vor efectua cele două operații. A treia linie va conține numărul QQ de operații pe șir, apoi, pe următoarele QQ 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

  • 1N,Q1.000.0001 \leq N, Q \leq 1.000.000;
  • 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

  • 1N,Q1001 \leq N, Q \leq 100.

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

Log in or sign up to be able to send submissions!