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 翻译