sim Miguel | Miguel și Baza 2

This was the problem page during the contest. Access the current page here.
Time limit: 2s Memory limit: 256MB Input: Output:

Cerința

Miguel a învățat cum să scrie numere în baza 2 și cum merg operațiile pe biți, așa că a inventat următorul joc:

Ai primit un șir de NN numere v1v_1, v2v_2, ..., vnv_n și QQ interogări. Pentru fiecare interogare, ai la dispoziție două numere naturale AA și BB cu semnificația că vAv_A devine egal cu BB. După fiecare interogare, trebuie să afișezi numărul magic corespunzător noului șir. De menționat că după afișarea numărului magic, șirul nu revine la starea inițială.

Numărul magic al unui șir VV de lungime NN este egal cu suma tuturor numerelor din șirurile a1a_1, a2a_2, ..., ana_n. Pentru i=1i=1, aia_i este egal cu VV iar pentru fiecare i>1i \gt 1, aia_i conține rezultatele operației pe biți AND între oricare două numere consecutive din ai1a_{i-1}, păstrând ordinea relativă a perechilor. De menționat că șirul aia_i conține Ni+1N-i+1 elemente.

De exemplu, dacă V={1,3,5,7}V=\{1,3,5,7\}, atunci a1={1,3,5,7},a2={1,1,5},a3={1,1},a4={1}a_1=\{1,3,5,7\}, a_2=\{1,1,5\}, a_3=\{1,1\}, a_4=\{1\} iar numărul magic al lui VV este egal cu (1+3+5+7)+(1+1+5)+(1+1)+(1)=26(1+3+5+7)+(1+1+5)+(1+1)+(1)=26.

Date de intrare

De pe prima linie se citesc numerele naturale NN și QQ. A doua linie conține NN numere întregi v1v_1, v2v_2, ..., vnv_n. Pe următoarele QQ linii se află câte o interogare, de forma A B.

Date de ieșire

Se vor afișa cele QQ numere magice, dispuse pe câte o linie.

Restricții și Precizări

  • 1N,Q100.0001 \leq N, Q \leq 100.000
  • 0ai100.0000 \leq a_i \leq 100.000 pentru oricare 1iN1 \leq i \leq N
  • 0B100.0000 \leq B \leq 100.000
  • 1AN1 \leq A \leq N

Exemplu

stdin

5 4
1 5 3 7 4
5 3
2 2
3 4
1 7

stdout

35
31
24
32

Explicație

După prima interogare, șirul devine 1,5,3,7,31,5,3,7,3 iar numărul magic este egal cu (1+5+3+7+3)+(1+1+3+3)+(1+1+3)+(1+1)+(1)=35(1+5+3+7+3)+(1+1+3+3)+(1+1+3)+(1+1)+(1)=35. Pentru a obține a2a_2 vom efectua următoarele operații: 1&51\&5, 5&35\&3, 3&73\&7, 7&37\&3.

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