#cf2015morningeasyc. [cf_2015_morning_easy_c]ヘイホー君と最終試験

[cf_2015_morning_easy_c]ヘイホー君と最終試験

问题描述

在Codefes大学的竞技编程课程中,为了成绩评估,将进行NN次考试。每次考试的成绩是介于00MM之间的整数。如果NN次考试中前KK次的平均成绩不低于RR分,那么就能取得学分。如果前KK次的平均成绩低于RR分,那么就不能取得学分。

在完成N1N-1次考试后,HeyHou准备参加最后一次考试。已知在除最后一次考试外的N1N-1次考试中,HeyHou的成绩分别为S1S_1S2S_2,...,SN1S_{N-1}。请问HeyHou在最后一次考试中至少需要取得多少分才能取得学分?


输入

输入以以下格式从标准输入中给出。

NN KK MM RR S1S_1 S2S_2 : SN1S_{N-1}

  • 第1行包含四个整数N(1N100)N (1≤N≤100)K(1KN)K (1≤K≤N)M(1M109)M (1≤M≤10^9)R(0RM)R (0≤R≤M),以空格分隔。其中,NN代表考试次数,KK代表用于成绩评估的考试数量,MM代表每次考试的满分,RR代表取得学分所需的平均分数。
  • 第2行至第N1N-1行,每行包含一个整数Si(0SiM)S_i (0≤S_i≤M)。这些数表示HeyHou在每次考试中的成绩。
  • 注意:不会给出SNS_N的值。

输出

输出为一行。

  • 如果无论最后一次考试得多少分都能取得学分,则输出00
  • 如果无论最后一次考试得多少分都无法取得学分,则输出1-1
  • 其他情况下,输出HeyHou在最后一次考试中所需的最低分数。

注意:输出末尾必须包含换行符。


示例1

5 3 100 60
86
23
49
39

输出示例1

45

如果HeyHou在最后一次考试中得了45分,则前3次的平均分为(86+49+45)/3=60(86+49+45)/3=60,满足取得学分的要求。当然,得到46分或更高也能取得学分。但是,如果得到44分或更低,就不能取得学分。


示例2

5 3 100 60
92
100
95
99

输出示例2

0

无论最后一次考试得多少分,都能取得学分。


示例3

5 3 100 60
18
42
29
31

输出示例3

-1

遗憾的是,即使最后一次考试得了满分,也不能取得学分。


示例4

13 10 1000000000 645245296
492014535
611893452
729291030
392019922
293849201
474839528
702912832
341845861
102495671
908590572
812912432
129855439

输出示例4

986132796

输入可能包含非常大的数。请注意溢出的问题。