Laiko ribojimas: 1s

Atminties ribojimas: 32MB

Duomenų failas: keliniai.in

Rezultatų failas: keliniai.out

Jei norite pateikti savo sprendimą - prisijunkite.

Kėliniai

Masyve A iš eilės surašyti skaičiai [1,2,3,\\ldots,2^p-1,2^p]. Su šiuo masyvu (gavus parametrą k) galima atlikti tokią operaciją:

Masyvas suskaidomas į mažesnius 2^k ilgio posekius. Pirmajame iš jų atsiras elementai su numeriais b_0=[0\\cdot2^k+1,0\\cdot2^k+2,\\ldots,0\\cdot2^k+2^k], antrajame b_1=[1\\cdot2^k+1,1\\cdot2^k+2,\\ldots,1\\cdot2^k+2^k] ir t.t. Galiausiai blokai, turintys lyginius numerius, sukeičiami su kitu bloku vietomis ir taip gaunamas naujas masyvas A=b_1b_0b_3b_2b_5b_4\\ldots.

Įvestis

Pirmojoje eilutėje bus pateikti trys skaičiai N,K,Q (N=2^p,0<p\\leq21,1\\leqK,Q\\leq100000) - elementų masyve kiekis, operacijų kiekis bei užklausų kiekis. Sekančiose K eilučių bus pateikti skaičiai 0\\leqk_i<p, nurodantys, kad su masyvu reikia atlikti anksčiau aprašytą operaciją su parametru k=k_i. Galiausiai bus pateiktos Q eilučių su skaičiais 1\\leqq_i\\leqN.

Išvestis

Kiekvienam skaičiui q_i (i=1,2,3,\\ldots,Q) reiks parašyti koks masyvo skaičius atsiras q_i'tojoje pozicijoje po visų operacijų.

Pavyzdys

Pradiniai duomenys Rezultatai
8 3 3
0
1
2
1
3
7
8
6
2