AT_indeednow_2015_quala_3 説明会

题目描述

某公司举办了一场选拔竞赛,以筛选参加说明会的学生。由于举办说明会的会场有最大容纳人数的限制,竞赛负责人正在苦恼该如何设定分数线。 选拔方法如下: - 当分数线为 $x$ 分时,从获得正分的学生中,选拔出所有得分不少于 $x$ 分的学生。 - 换句话说,得 $0$ 分的学生无论会场最大容纳人数如何都不会被选拔。 现在给定选拔竞赛中 $N$ 名学生的分数,以及 $Q$ 个会场候选。每个会场的最大容纳人数分别为 $k_1, k_2, \ldots, k_Q$。公司打算在这些会场候选中的某一个举办说明会。 你的任务是,对于每个会场候选,输出举办说明会时所需的最小分数线。具体来说,假设在第 $i$ 个会场举办说明会时,请输出在上述选拔方法下,选拔人数不超过 $k_i$ 人的所有分数线中,最小且不小于 $0$ 的分数线。

输入格式

输入按以下格式从标准输入读入。 > $N$ > $s_1$ > $s_2$ > $\vdots$ > $s_N$ > $Q$ > $k_1$ > $k_2$ > $\vdots$ > $k_Q$ - 第 $1$ 行为学生人数 $N$,$1 \leq N \leq 100\,000$。 - 第 $2$ 行到第 $N+1$ 行,每行一个整数,第 $i$ 行为第 $i$ 个学生的分数 $s_i$,$0 \leq s_i \leq 1\,000\,000$。 - 第 $N+2$ 行为会场候选数 $Q$,$1 \leq Q \leq 100\,000$。 - 第 $N+3$ 行到第 $N+Q+2$ 行,每行一个整数,第 $i$ 行为第 $i$ 个会场的最大容纳人数 $k_i$,$0 \leq k_i \leq N$。

输出格式

请从第 $1$ 行到第 $Q$ 行,依次输出每个会场候选对应的分数线。第 $i$ 行输出在第 $i$ 个会场举办说明会时的分数线。

说明/提示

### 样例解释 1 虽然很极端,但第 $1$ 个会场的最大容纳人数为 $0$,因此不希望有任何人通过。此时最小的分数线为 $11$ 分。第 $2$ 个会场的最大容纳人数为 $4$,因此需要设定分数线,使得通过人数不超过 $4$。如果分数线设为 $6$ 分,则有 $6$ 人通过,超出会场最大容纳人数。若设为 $7$ 分,则仅有 $3$ 人通过,满足会场容量,这就是最小的分数线。第 $3$ 个会场的最大容纳人数为 $12$,此时分数线设为 $0$ 分即可。因为根据选拔方法,得 $0$ 分的学生不会被选拔,只有得正分的 $12$ 人会被选拔。 ### 样例解释 3 也可能出现所有人都得 $0$ 分的情况。这时无论分数线如何设定,都不会有人通过,因此无论会场最大容纳人数是多少,分数线都应设为 $0$ 分。 由 ChatGPT 4.1 翻译