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