secvxor

Time limit: 0.55s Memory limit: 512MB Input: secvxor.in Output: secvxor.out

Se consideră un şir AA cu NN elemente numere naturale nenule. Pentru fiecare subsecvenţă de forma Ai,Ai+1,Ai+2,,AjA_{i},A_{i+1},A_{i+2},\ldots,A_{j} din şirul AA (unde i<ji \lt j) pentru care cel mai mare divizor comun al numerelor AiA_{i} şi AjA_{j} este mai mare decât 11, se calculează valoarea AiAi+1AjA_{i} \oplus A_{i+1} \oplus \ldots \oplus A_{j}, unde \oplus este operaţia sau exclusiv pe biţi (notată în C/C++ cu ^). Între valorile obţinute pentru fiecare subsecvenţă se efectuează din nou operaţia \oplus, obţinând ca rezultat un număr BB.

Se cere să se determine valoarea lui BB.

Date de intrare

Pe prima linie a fişierului de intrare se află numărul NN, iar pe a doua linie elementele şirului AA.

Date de ieșire

Pe prima linie a fişierului de ieşire se va afişa valoarea numărului BB.

Restricții

  • 1N100 0001\leq N \leq 100\ 000
  • 1Ai1 000 0001\leq A_{i} \leq 1\ 000\ 000
    # Punctaj Restricții
    1 9 1N5001\leq N\leq 500
    2 12 1N5 0001\leq N\leq 5\ 000
    3 15 Elementele şirului AA sunt numere pare.
    4 26 Elementele şirului AA sunt numere prime.
    5 38 Fără restricții suplimentare

Exemplu

secvxor.in

5
4 7 6 10 21

secvxor.out

1

Explicație

Operaţia \oplus se defineşte astfel: 00=11=00 \oplus 0 = 1 \oplus 1 = 0,   01=10=1\ \ 0 \oplus 1 = 1 \oplus 0 = 1, și  (2k+)(2k+)=2(kk)+()\ (2k + \ell) \oplus (2k' + \ell') = 2(k \oplus k') + (\ell \oplus \ell') pentru k,k0k, k' \geq 0 și 0,10 \leq \ell, \ell' \leq 1.

De exemplu, pentru numerele 77 şi 1818 scrierea lor în baza 22 este 7=11127=111_{2}, respectiv 18=10010218=10010_{2}. Efectuând operaţia \oplus între aceste numere vom obţine rezultatul 101012=2110101_{2}=21.

Subsecvenţele care satisfac proprietatea din enunţ (adică sunt de lungime cel puţin 2, iar elementele de la începutul şi sfârşitul subsecvenţei au cel mai mare divizor comun mai mare decât 11) sunt: (4,7,6)(4,7,6), (4,7,6,10)(4,7,6,10), (7,6,10,21)(7,6,10,21), (6,10)(6,10), (6,10,21)(6,10,21). Efectuând operaţia \oplus între elementele fiecărei subsecvenţe obţinem valorile 5,15,30,125,15,30,12, respectiv 2525. Efectuând operaţia \oplus între aceste valori obţinem valoarea lui B=1B=1.

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