Laiko ribojimas: 1s
Atminties ribojimas: 1024MB
Duomenų failas: bit_operations.in
Rezultatų failas: bit_operations.out
BIT Operations
Domantas turi skaičių seką sudarytą iš neneigiamų sveikųjų skaičių: . Domantas nusprendė ant sekos išbandyti bitų operacijas ir sekai apskaičiuoti skaičių .
Apskaičiuojant skaičių Domantui tenka atlikti kelias iteracijas. Pirmiausia jis susirašo naują seką sudarytą iš elementų. Sekančioje iteracijoje Domantas naudoja po pirmos iteracijos gautą skaičių seką ir vietoje bitų operacijos OR, taiko kitą - XOR operaciją ir gauna seką, sudarytą iš elementų. Trečioje iteracijoje jis vėl naudoja bitų operaciją OR ir taip kiekvienoje iteracijoje keičia operaciją iš OR į XOR ir atvirkščiai, kol galiausiai turi skaičių seką sudarytą tik iš elemento, kuris ir yra skaičius .
Pavyzdžiui turime seka . Surašius visas transformacijas iš eilės gautume: .
Kadangi duotai sekai apskaičiuoti rezultatą būtų per lengva, jums taip pat duota užklausų. Kiekviena užklausą yra skaičių pora. Užklausa reiškia, jog elementui turite priskirti reikšmę ir po kiekvienos užklausos išvesti rezultatą naujai sekai .
Pradiniai duomenys
Pirmoje eilutėje pateikti du skaičiai ir .
Antroje eilutėje pateikta sveikųjų skaičių .
Likusiose kiekvienoje eilučių pateikti skaičiai - užklausos duomenys.
Rezultatai
Kiekvienai užklausai išvesti naujos sekos rezultatą .
Pavyzdžiai
Pradiniai duomenys | Rezultatai |
---|---|
2 4 1 2 2 1 3 1 2 2 2 2 3 3 |
2 2 2 0 |