xor

Time limit: 1s Memory limit: 32MB Input: xor.in Output: xor.out

Cerință

După ce a câștigat Euro, Denis se duce la un festival în Germania pentru a sărbători. Acolo, el găsește NN sticle cu suc așezate într-o linie, sticla ii având suc de tipul sis_{i}. De asemenea, el primește un voucher de la organizatori, cu ajutorul căruia își poate alege o secvență de sticle, turnându-și câte puțin suc din fiecare sticlă din secvență în pahar. Bunătatea sucului din pahar este egală cu xorul tipurilor de suc din secvența de sticle aleasă.
De exemplu, dacă el își alege o secvență de sticle cu suc de tipurile 5, 1, 2, 55,\ 1,\ 2,\ 5, sucul din paharul său va avea bunătatea egală cu 5125=35 \oplus 1 \oplus 2 \oplus 5 = 3.
Deoarece Denis este prea ocupat ca să se mai gândească ce secvență ar trebui sa aleagă, el vă cere să îl ajutați să calculeze pentru fiecare poziție ii bunătatea maximă a unei secvențe care conține și poziția ii.

Date de intrare

Pe prima linie a fișierului de intrare xor.in se găsește un număr NN. Pe a doua linie se gasesc NN numere naturale, al ii-lea dintre ele reprezentând sis_i.

Date de ieșire

Pe prima linie a fișierului de ieșire xor.out se vor găsi NN numere naturale, al ii-lea dintre ele reprezentând xorul maxim al unei secvențe care conține poziția ii.

Restricții și precizări

  • 1N300 0001 \leq N \leq 300 \ 000
  • 0si1270 \leq s_{i} \leq 127
# Punctaj Restricții
0 0 Exemplul de mai jos.
1 10 N500N \leq 500
2 20 N5000N \leq 5000
3 70 Fără restricții suplimentare

Exemplul 1

xor.in

3
5 4 2

xor.out

5 6 6

Explicație

Secvențele posibile sunt:

  • [1,1][1,1] cu xorul 55,
  • [1,2][1,2] cu xorul 11,
  • [1,3][1,3] cu xorul 33,
  • [2,2][2,2] cu xorul 44,
  • [2,3][2,3] cu xorul 66,
  • [3,3][3,3] cu xorul 22.

Pentru prima poziție, secvența [1,1][1,1] are bunătatea(xorul) 55, fiind cea mai mare bunătate a unei secvențe care conține prima poziție. Pentru a 2-a si a 3-a poziție, secvența [2,3][2,3] cu bunătatea 66 este cea cu bunătatea cea mai mare care le conține.

Exemplul 2

xor.in

10
20 35 102 36 3 26 3 92 65 120 

xor.out

118 123 123 123 127 127 127 127 127 127

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