CF540B School Marks

题目描述

小 Vova 在一所精英学校学习编程。Vova 和他的同学们需要参加 $n$ 次测验,每次测验的成绩都是 $1$ 到 $p$ 之间的一个整数。Vova 非常聪明,他每次考试都能考到任何分数,但他又不想太过引人注目。如果他所有测验的成绩总和超过 $x$,他的同学们就会注意到他的聪明,开始缠着他抄作业。如果他的成绩中位数低于 $y$ 分,他的妈妈就会觉得他成绩太差,不让他玩电脑游戏。 Vova 已经参加了 $k$ 场测验,分别得到了分数 $a_1, a_2, ..., a_k$。他不希望出现前面描述的两种情况,需要确定剩下测验的分数应该是多少。请你帮他计算。

输入格式

第一行包含五个用空格分隔的整数:$n$、$k$、$p$、$x$ 和 $y$,其中 $1 \leq n \leq 999$,$n$ 是奇数,$0 \leq k < n$,$1 \leq p \leq 1000$,$n \leq x \leq n \cdot p$,$1 \leq y \leq p$。其中 $n$ 表示总测验次数,$k$ 表示已经完成的测验次数,$p$ 表示测验的最高分,$x$ 表示成绩总和不能超过的最大值,$y$ 表示中位数不能低于的最小值。 第二行包含 $k$ 个用空格分隔的整数 $a_1, ..., a_k$($1 \leq a_i \leq p$),表示 Vova 已经完成的测验分数。

输出格式

如果 Vova 无法达成上述目标,输出 $-1$。 否则,输出 $n-k$ 个用空格分隔的整数 —— 表示他剩下每次测验该得到的分数。如果有多种合法方案,输出其中任意一种。

说明/提示

对于长度为 $n$(且 $n$ 为奇数,本题 $n$ 总是奇数)的序列 $a_1, ..., a_n$,其中位数定义为按升序排序后处于第 $ \frac{n+1}{2} $ 个位置的数。 例如,第一组样例分数总和为 $3+5+4+4+1=17$,没有超过 $18$,同学们不会骚扰 Vova。序列 $\{1, 3, 4, 4, 5\}$ 的中位数为 $4$,不小于 $4$,所以妈妈允许他玩电脑。 请注意,你不必最大化成绩总和或中位数,只需满足条件即可。其中任意一种答案(如 “4 2”、“2 4”、“5 1”、“1 5”、“4 1”、“1 4”)都是正确的。 第二组样例中,Vova 已经得了三个 5 分,即使剩下两次只得 1 分,总分也达到 17,超过了限制(16),所以输出 $-1$。 由 ChatGPT 5 翻译