AT_abc418_c [ABC418C] Flush

题目描述

在扑克桌上,有 $N$ 种不同口味的茶包。口味编号为 $1$ 到 $N$,第 $i$ 种口味有 $A_i$ 个茶包($1 \leq i \leq N$)。 你将用这些茶包玩一个游戏。该游戏有一个称为**难度**的参数,取值范围为 $1$ 到 $A_1 + \dots + A_N$(包含端点)。难度为 $b$ 的游戏流程如下: 1. 你声明一个整数 $x$,其中 $b \leq x \leq A_1 + \dots + A_N$。 2. 庄家从桌上的茶包中选出恰好 $x$ 个茶包交给你。 3. 你检查这 $x$ 个茶包的口味,并从中选出 $b$ 个茶包。 4. 如果你选出的 $b$ 个茶包全部为同一口味,则你获胜;否则你失败。 庄家会尽全力让你失败。 你会得到 $Q$ 个询问,请分别回答。第 $j$ 个询问如下: - 对于难度为 $B_j$ 的游戏,报告你必须在开始时声明的最小整数 $x$,以保证获胜。如果无法获胜,则输出 $-1$。

输入格式

输入按如下格式给出: > $N$ $Q$ > $A_1$ $A_2$ $\cdots$ $A_N$ > $B_1$ > $\vdots$ > $B_Q$

输出格式

输出 $Q$ 行。 第 $j$ 行($1 \leq j \leq Q$)应输出第 $j$ 个询问的答案。

说明/提示

### 样例解释 1 对于第 $1$ 个询问,如果你声明 $x=1$,那么无论庄家选哪一个茶包,你都可以通过选择这一个茶包来满足获胜条件。由于 $x$ 不能小于 $1$,所以答案是 $1$。 对于第 $2$ 个询问,如果你声明 $x=17$,那么无论庄家选哪 $17$ 个茶包,你都可以通过选择合适的 $8$ 个茶包来满足获胜条件。反之,如果 $x < 17$,庄家可以选择茶包使你无法获胜。因此,答案是 $17$。 对于第 $3$ 个询问,如果你声明 $x=14$,那么无论庄家选哪 $14$ 个茶包,你都可以通过选择合适的 $5$ 个茶包来满足获胜条件。反之,如果 $x < 14$,庄家可以选择茶包使你无法获胜。因此,答案是 $14$。 对于第 $4$ 个询问,如果你声明 $x=5$,那么无论庄家选哪 $5$ 个茶包,你都可以通过选择合适的 $2$ 个茶包来满足获胜条件。反之,如果 $x < 5$,庄家可以选择茶包使你无法获胜。因此,答案是 $5$。 对于第 $5$ 个询问,无论你声明什么 $x$,庄家都可以选择茶包使你无法获胜。因此,输出 $-1$。 ### 数据范围 - $1 \leq N \leq 3 \times 10^5$ - $1 \leq Q \leq 3 \times 10^5$ - $1 \leq A_i \leq 10^6$($1 \leq i \leq N$) - $1 \leq B_j \leq \min(10^6, A_1 + \dots + A_N)$($1 \leq j \leq Q$) - 所有输入均为整数。 由 ChatGPT 4.1 翻译