AT_pakencamp_2024_day2_h Hold a Contest

题目描述

在 Paken 王国中有 $N$ 名居民,编号为 $1$ 到 $N$。每个居民都有一个代表竞技编程实力的评级,居民 $i$ 的评级为 $R_i$。 此外,在这 $N$ 人之间存在 $M$ 对好友关系,居民 $A_j$ 与居民 $B_j$ 之间是好友($1 \leq j \leq M$)。除了这 $M$ 对好友关系外,没有其他的好友关系。 Pataro 决定面向 Paken 王国的居民举办竞技编程比赛。首先,他会设定一个评级限制 $X$($X$ 为整数),然后自由选择 $K$ 名居民并发送邀请函。 收到 Pataro 或其他居民发送的邀请函的居民 $x$($1 \leq x \leq N$)会按如下方式行动: - 如果已经收到了 $1$ 张或更多邀请函,则什么也不做。 - 如果还未收到邀请函,且自己的评级大于等于评级限制(即 $X \leq R_x$),则会参加比赛,并向自己所有的好友再次发送邀请函。 - 否则,什么也不做。 Pataro 希望尽可能提升比赛的评级限制,但如果参与人数过少则会产生困扰。 为此,Pataro 思考了 $N$ 个问题。第 $k$ ($1 \leq k \leq N$) 个问题如下: - 为了使至少 $k$ 名居民参加比赛,评级限制 $X$ 至多可以设为多少?邀请函可以自由发送给 $K$ 名居民。 请你为 Pataro 编写程序,回答这 $N$ 个问题。

输入格式

输入以如下格式从标准输入给出。 > $N$ $M$ $K$ $R_1$ $R_2$ $\ldots$ $R_N$ $A_1$ $B_1$ $A_2$ $B_2$ > $\vdots$ > $A_M$ $B_M$

输出格式

请按顺序输出 $N$ 行,第 $k$ 行输出第 $k$ 个问题的答案。若无论如何设定评级限制,都无法使至少 $k$ 名居民参加比赛,则输出 $-1$。

说明/提示

## 子任务 1. ($1$ 分)$N \leq 2$ 2. ($2$ 分)$M = 0$ 3. ($2$ 分)$N \leq 10$ 4. ($10$ 分)$R_i = 1$ ($1 \leq i \leq N$) 5. ($10$ 分)$R_i \leq 5$ ($1 \leq i \leq N$) 6. ($20$ 分)$K = 1$ 7. ($30$ 分)$K \leq 5$ 8. ($25$ 分)无额外限制 ## 样例说明 1 例如,当 $k=3$ 时,设 $X=2$ 可以满足条件。具体来说,若给居民 $2$ 发送邀请函,居民 $2$ 会给居民 $3$ 发送邀请函,居民 $3$ 又会给居民 $4$ 发送邀请函,最终居民 $2,3,4$ 共 $3$ 人能够参赛,从而达到要求。注意,居民 $2$ 也会给居民 $1$ 发送邀请函,但居民 $1$ 的评级未达到 $X$,因此不会参赛。 该样例符合子任务 $3, 5, 6, 7, 8$ 的限制。 # 数据范围与约定 - $1 \leq N \leq 2 \times 10^5$ - $0 \leq M \leq 2 \times 10^5$ - $1 \leq K \leq N$ - $1 \leq R_i \leq 10^{18}$($1 \leq i \leq N$) - $1 \leq A_i < B_i \leq N$($1 \leq i \leq M$) - $(A_i,B_i) \neq (A_j,B_j)$($i \neq j$) - 输入均为整数。 由 ChatGPT 5 翻译