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 |