h2. Date de intrare
Pe prima linie a fişierul de intrare $piezisa.in$ se va afla un singur număr natural, reprezentând valoarea lui $n$. A doua linie conţine $n$ numere întregi, reprezentând valorile $v{~0~}, v{~1~}, ... , v{~n−1~}$ . A treia linie conţine un singur număr natural, reprezentând valoarea lui $q$. Pe următoarele $q$ linii se află valorile corespunzătoare planurilor. Linia $i + 3$ conţine $2$ valori întregi, reprezentând $[l{~i~}, r{~i~}]$.
Fişierul de intrare $piezisa.in$ ...
h2. Date de ieşire
În fişierul de ieşire $piezisa.out$ se vor afişa $q$ linii. Pe linia $i$, se va afla răspunsul la al $i$-lea plan.
În fişierul de ieşire $piezisa.out$ ...
h2. Restricţii şi precizări
h2. Restricţii
* Operaţia xor reprezintă operaţia de sau exclusiv pe biţi. în $C/C++$, acest operator este $^$.
* Dacă pentru un plan, nu există niciun segment cu suma xor egala cu 0, atunci răspunsul este −1.
* $1 ≤ n ≤ 500 000$.
* $1 ≤ q ≤ 500 000$.
* $0 ≤ v{~i~} ≤ 2^30$, pentru oricare $1 ≤ i ≤ n$.
* $0 ≤ v{~i~} ≤ 2^30$, pentru oricare $1 ≤ i ≤ n$.
* $0 ≤ l{~i~} ≤ r{~i~} ≤ n$, pentru oricare $1 ≤ i ≤ q$.
* $... ≤ ... ≤ ...$
h2. Subtaskuri
table(restrictii). |_. # |_. Punctaj |_. Restricţii |
| $1$ | $10$ | $1 ≤ n, q ≤ 500$ |
| $2$ | $15$ | $1 ≤ n, q ≤ 3 000$ |
| $3$ | $5$ | $v{~i~} < 4$, pentru oricare $1 ≤ i ≤ n$ |
| $4$ | $40$ | $1 ≤ n ≤ 100 000$ |
| $5$ | $30$ | Fără restricţii suplimentare |
h2. Exemple
h2. Exemplu
table(example). |_. piezisa.in |_. piezisa.out |
| 6
2 0 3 3 2 2
4
5 5
1 1
0 1
2 2
| 2
1
5
2
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
| 10
5 7 3 6 1 2 5 2 5 4
3
7 9
5 8
1 5
| 8
4
-1
|
h3. Explicaţie