#P11535. [2024省队模拟]位运算

[2024省队模拟]位运算

题目描述

你有一个序列 aa , 有 qq 组询问, 每组询问给出 A,B,C,k,xA, B, C, k, x , 对于每组询问 ,会得到 一个序列 bb, 满足 $\texttt{bi = A × popcnt(ai and x) + B × popcnt(ai or x) + C × popcnt(ai xor x)}$ , 你需查询序列 bb 中的第 kk 小值。
说明:popcntpopcnt 是计算一个整数的二进制表示中有多少位是1。

输入格式

第一行输入 nqn, q , 接着第二行输入 n n 个正整数, 表示 aa 序列 a1a2an a_{1} a_{2} … a_{n}
接下来输入 qq 行每行输入五个数 A,B,C,k,xA, B, C, k ,x

输出格式

输出 qq 行,表示每组询问的答案

样例输入1

5 4
1 2 3 4 5
1 0 0 1 3
1 0 1 5 3
2 7 6 4 7
3 1 9 2 6

样例输出1

0
3
35
14

样例输入2

8 5
123 312 324 412 432 231 321 423
123 231 242 4 233
132 332 313 2 223
313 331 231 8 444
312 222 211 1 999
311 333 222 5 321

样例输出2

3073
4255
5304
3767
3974

数据规模和约定

S=max(maxi=1nai,x)S = max( max{ ^n_{i=1}} ai , x )

测试点编号 nn \le SS \le qq \le 特殊性质
121-2 10001000
343-4 10410^4
565-6 106 10^6 21612^{16}-1 A
787-8 10610^6 B
9129-12 C
132013-20

特殊性质 AA :保证 B=C=0 B=C=0

特殊性质 BB :保证 A=B=0 A=B=0

特殊性质 CC :保证 C=0 C=0

对于所有测试数据: $1 \le n\le 10^5, 1 \le q< 2^{16} , 0 \le S,A,B< 2^{16}$ 。