AT_cf_2015_morning_easy_c ヘイホー君と最終試験

题目描述

在 Codefes 大学的竞赛编程课程中,为了成绩评定,将进行 $N$ 次考试。每次考试的成绩是 $0$ 以上 $M$ 以下的整数。在 $N$ 个考试成绩中,取最高的 $K$ 个成绩的平均分,如果不低于 $R$ 分,则可以获得学分。如果最高 $K$ 个成绩的平均分低于 $R$,则不及格,无法获得学分。 已经完成了 $N-1$ 次考试的 Heihou 君即将参加最后一次考试。除最后一次考试外,Heihou 君在前 $N-1$ 次考试中的成绩分别为 $S_1, S_2, \ldots, S_{N-1}$。请问 Heihou 君在最后一次考试中至少需要取得多少分才能获得学分?

输入格式

输入通过标准输入给出,格式如下: > $N$ $K$ $M$ $R$ $S_1$ $S_2$ : $S_{N-1}$ - 第 $1$ 行包含四个整数 $N\ (1 \leq N \leq 100)$、$K\ (1 \leq K \leq N)$、$M\ (1 \leq M \leq 10^9)$、$R\ (0 \leq R \leq M)$,用空格分隔。这里,$N$ 表示考试次数,$K$ 表示用于成绩评定的考试数量,$M$ 表示每次考试的满分,$R$ 表示获得学分所需的平均分。 - 接下来的 $N-1$ 行,每行一个整数 $S_i\ (0 \leq S_i \leq M)$,表示 Heihou 君第 $i$ 次考试的成绩。 - 注意,$S_N$(最后一次考试的成绩)未给出。

输出格式

输出一行: - 如果无论最后一次考试得多少分,Heihou 君都能获得学分,则输出 $0$。 - 如果无论最后一次考试得多少分,Heihou 君都无法获得学分,则输出 $-1$。 - 否则,输出 Heihou 君在最后一次考试中至少需要取得的最低分数。 无论哪种情况,输出末尾都要换行。

说明/提示

### 样例解释 1 如果 Heihou 君在最后一次考试中取得 $45$ 分,则最高的 $3$ 个成绩的平均分为 $(86+49+45)/3=60$,可以获得学分。当然,取得 $46$ 分或更高也可以获得学分。另一方面,如果取得 $44$ 分或更低,则无法获得学分。 ### 样例解释 2 即使最后一次考试得 $0$ 分,也能获得学分。 ### 样例解释 3 很遗憾,即使最后一次考试得满分,也无法获得学分。 ### 样例解释 4 输入中可能包含很大的数。请注意避免溢出。 由 ChatGPT 4.1 翻译