2334: 16-y-变换数组

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:1 Solved:1

Description

输入一个数组 a,包含有 n 个元素 a1,a2,⋅⋅⋅,an

对这个数组进行 m 次变换,每次变换会将数组 a中的每个元素 ai 转换为 ai * bitCount(ai)

其中 bitCount(x)表示数字 x的二进制表示中 1 出现的次数,例如 bitCount(3)=2,因为 3 的二进制表示为 11,其中 1 出现了两次。

Input

输入的第一行包含一个正整数 n,表示数组 a 中的元素个数。

第二行包含 n个整数 a1,a2,⋅⋅⋅,an,相邻整数之间使用一个空格分隔。

第三行包含一个整数 m,表示变换次数。

Output

输出一行,包含 n个整数,相邻整数之间使用一个空格分隔,表示变换之后得到的数组 a

Sample Input Copy

2
5 7
2

Sample Output Copy

20 63

HINT

样例解释

5=(101)27=(111)2,第一次变化后 a=[10,21]

10=(1010)221=(10101)2,第二次变换后 a=[20,63]

 

数据范围

对于所有评测用例,1≤n≤1030≤m≤50≤ai≤1000

Source/Category