CF1903D1 Maximum And Queries (easy version)
题目描述
这是该问题的简单版本。两个版本的唯一区别在于 $n$ 和 $q$ 的限制,以及内存和时间限制。只有当你解决了所有版本的问题时,才能进行 hack。
Theofanis 非常喜欢玩数字的二进制位。他有一个大小为 $n$ 的数组 $a$ 和一个整数 $k$。他最多可以对数组进行 $k$ 次操作。每次操作,他可以选择一个元素并将其加 $1$。
他想知道,经过最多 $k$ 次操作后,数组 $a$ 能得到的最大按位与(bitwise AND)是多少。
Theofanis 为了找到这个值付出了很多努力,并对自己的结果非常满意。不幸的是,Adaś 是个恶人,他不断地改变 $k$ 的值来捉弄 Theofanis。
请你帮助 Theofanis,计算对于 $q$ 个不同的 $k$,数组 $a$ 能得到的最大按位与。注意,每个询问都是独立的。
输入格式
第一行包含两个整数 $n$ 和 $q$($1 \le n, q \le 10^5$ 且 $n \cdot q \le 10^5$),分别表示数组的大小和询问的数量。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le 10^6$),表示数组的元素。
接下来的 $q$ 行,每行一个整数 $k_i$($0 \le k_i \le 10^{18}$),表示第 $i$ 个询问允许的操作次数。
输出格式
对于每个询问,输出一个整数,表示经过最多 $k_i$ 次操作后,数组 $a$ 能得到的最大按位与。
说明/提示
在第一个测试用例中,对于第一个询问,我们可以将数组的第一个和最后一个元素各加 $1$。
这样数组变为 $[2,3,7,6]$,其按位与为 $2$。
在第二个测试用例中,对于第一个询问,我们可以将第一个元素加 $1$,第二个元素加 $5$,第三个元素加 $3$,此时所有元素都变为 $5$。
由 ChatGPT 4.1 翻译