You are given n numbers a1, a2, ..., an. You can perform at most k operations. For each operation you can multiply one of the numbers by x. We want to make as large as possible, where denotes the bitwise OR.
Find the maximum possible value of after performing at most k operations optimally.
The first line contains three integers n, k and x (1 ≤ n ≤ 200 000, 1 ≤ k ≤ 10, 2 ≤ x ≤ 8).
The second line contains n integers a1, a2, ..., an (0 ≤ ai ≤ 109).
Output the maximum value of a bitwise OR of sequence elements after performing operations.
3 1 2 1 1 1
3
4 2 3 1 2 4 8
79
For the first sample, any possible choice of doing one operation will result the same three numbers 1, 1, 2 so the result is .
For the second sample if we multiply 8 by 3 two times we'll get 72. In this case the numbers will become 1, 2,4, 72 so the OR value will be 79 and is the largest possible result.
题目大意:给出一个长度为n的序列a,可以进行k次操作,每次操作可以在序列中任选一个数将其乘x。求所有操作结束后最大的$a_1|a_2|...|a_n$(|表示按位或)。
最优解一定是把所有操作都应用在同一个数上,因为对于其他可能,可以把其他数上的操作都给按当前方案应用操作后最大的数,这会使提高这个数的最高位,使按位或得出的结果更大。
代码在此。