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