Cunoscut pentru multe lucruri importante, cum ar fi metroul orașului și festivalul Nespus, orașul Jluc găzduiește încă un obiectiv turistic, totuși mai puțin cunoscut decât cele menționate anterior – Piezișă.
La prima vedere, Piezișă este doar o stradă, cu mai multe magazine de-a lungul ei. Mai exact, aceasta are n magazine poziționate de-a lungul ei, numerotate de la 0 la n − 1. Totuși, Piezișă este mai mult decât ceea ce pare: este un loc unde se creează amintiri. Magazinul i are un numar asociat , care reprezintă calitatea amintirilor create în acel magazin.
Auzind de această stradă, Alex își dorește să viziteze un interval continuu de magazine în seara aceasta. El are q planuri de asemenea intervale, al i-lea fiind de forma . Pentru a nu pierde timp, el dorește să meargă pe Piezișă cu noua sa trotinetă electrică. Totuși, Alex este superstițios, și este convins că dacă suma xor a valorilor dintr-un interval vizitat nu ar fi 0, atunci asta i-ar aduce ghinion. Așadar, pentru fiecare plan, el dorește să afle lungimea intervalului de lungime minimă care conține magazinele din plan, și care are suma xor 0.
Formal, se dă un șir de n valori intregi, și q intervale de forma . Trebuie să calculați, pentru fiecare astfel de interval, lungimea intervalului de lungime minimă [x, y], cu proprietatea că și pentru care .
Date de intrare
Prima linie conține un singur număr natural, reprezentând valoarea lui n. A doua linie conține n numere întregi, reprezentând valorile . 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 și .
Date de ieșire
Se vor afișa q linii. Pe linia i, se va afla răspunsul la al i-lea plan.
Restricții
- Operația
xorreprezintă operația de sau exclusiv pe biți. în C/C++, acest operator esteˆ. - Dacă pentru un plan, nu există niciun segment cu suma
xoregala cu0, atunci răspunsul este−1. - , pentru oricare
- , pentru oricare
Subtask 1 (10 puncte)
Subtask 2 (15 puncte)
Subtask 3 (5 puncte)
- , pentru oricare
0 ≤ i < n
Subtask 4 (40 puncte)
Subtask 5 (30 puncte)
- Nu există alte restricții
Exemplul 1
stdin
6
2 0 3 3 2 2
4
5 5
1 1
0 1
2 2
stdout
2
1
5
2
Explicație
Primul plan dorește să viziteze magazinul de pe poziția , care are valoarea . Observăm că subsegmentul (care conține valorile ) are suma xor 0, așadar el este cel mai mic subsegment cu xor 0 care conține . Răspunsul va fi, așadar, .
Al doilea plan conține doar magazinul de pe poziția , care are valoarea 0. Segmentul optim pentru acest plan este .
Al treilea plan conține magazinele și , care au valorile . Segmentul optim pentru acest plan este .
Al doilea plan conține doar magazinul de pe poziția 2, care are valoarea 3. Segmentul optim pentru acest plan este [2, 3].
Exemplul 2
stdin
10
5 7 3 6 1 2 5 2 5 4
3
7 9
5 8
1 5
stdout
8
4
-1
Explicație
Pentru primul plan, unul dintre segmentele optime este , de lungime .
Pentru al doilea plan, unul dintre segmentele optime este , de lungime .
Pentru al treilea plan, nu există niciun subsegment valid, așadar este afișat .