Codeforces Round 907 (Div. 2) |
---|
Закончено |
Дан массив $$$a$$$ длины $$$n$$$, состоящий из целых положительных чисел и массив $$$x$$$ длины $$$q$$$, также состоящий из целых положительных чисел.
Происходят $$$q$$$ изменений. На $$$i$$$-м изменении ($$$1 \leq i \leq q$$$) для каждого $$$j$$$ ($$$1 \leq j \leq n$$$), такого что $$$a_j$$$ делится на $$$2^{x_i}$$$, к $$$a_j$$$ прибавляется $$$2^{x_i-1}$$$. Обратите внимание, $$$x_i$$$ ($$$1 \leq x_i \leq 30$$$) — целое положительное число, не превосходящее 30.
После всех запросов изменения нужно вывести итоговый массив.
В первой строке содержится единственное число $$$t$$$ ($$$1 \leq t \leq 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$q$$$ ($$$1 \leq n, q \leq 10^5$$$) — длину массива $$$a$$$ и количество запросов соответственно.
Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$a_1, a_2, a_3, \ldots, a_n$$$ — элементы массива $$$a$$$ ($$$1 \leq a_i \leq 10^9$$$).
Третья строка каждого набора входных данных содержит $$$q$$$ целых чисел $$$x_1, x_2, x_3, \ldots, x_q$$$ — элементы массива $$$x$$$ ($$$1 \leq x_i \leq 30$$$), которые являются запросами изменения.
Гарантируется, что сумма $$$n$$$ и сумма $$$q$$$ по всем наборам входных данных не превосходят $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите массив после всех изменений.
45 31 2 3 4 42 3 47 37 8 12 36 48 6 310 4 25 42 2 2 2 21 1 1 15 51 2 4 8 165 2 3 4 1
1 2 3 6 6 7 10 14 38 58 6 3 3 3 3 3 3 1 3 7 11 19
В первом наборе входных данных первая операция изменения прибавит $$$2$$$ к числам на позициях $$$4$$$ и $$$5$$$. После этого прибавления массив будет выглядеть так: $$$[1, 2, 3, 6, 6]$$$. Остальные операции не будут изменять массив.
Во втором наборе входных данных первая операция не изменит массив. Вторая операция изменения прибавит $$$8$$$ к числу на позиции $$$5$$$, а массив будет выглядеть так: $$$[7, 8, 12, 36, 56, 6, 3]$$$. Третья операция изменения прибавит $$$2$$$ к числам на позициях $$$2, 3$$$, $$$4$$$ и $$$5$$$. Массив будет выглядеть так: $$$[7, 10, 14, 38, 58, 6, 3]$$$.
Название |
---|