#aBC321B. [ABC321B] Cutoff

[ABC321B] Cutoff

AT_abc321_b [ABC321B] Cutoff

题目描述

有一个按照以下步骤进行的考试。

  • 考试共分为 NN 轮,从第 11 轮到第 NN 轮。
  • 每一轮都会获得一个在 00100100 之间的整数分数。
  • NN 轮分数中,去掉最高分和最低分后,剩下 N2N-2 轮的分数之和作为最终结果。
    • 更严格地说,将每轮分数按升序排列为 S=(S1,S2,,SN)S=(S_1,S_2,\dots,S_N),最终结果为 S2+S3++SN1S_2+S_3+\dots+S_{N-1}

现在,考试已经进行了 N1N-1 轮,第 ii 轮的分数为 AiA_i。 请输出,为了使最终结果不少于 XX,第 NN 轮至少需要取得的最小分数。 如果无论第 NN 轮取得多少分,最终结果都无法达到 XX,则输出 1-1。 注意,第 NN 轮可以取得的分数是 00100100 之间的整数。

输入格式

输入以如下格式从标准输入读入。

NN XX A1A_1 A2A_2 \dots AN1A_{N-1}

输出格式

请输出答案。

输入输出样例 #1

输入 #1

5 180
40 60 80 50

输出 #1

70

输入输出样例 #2

输入 #2

3 100
100 100

输出 #2

0

输入输出样例 #3

输入 #3

5 200
0 0 99 99

输出 #3

-1

输入输出样例 #4

输入 #4

10 480
59 98 88 54 70 24 8 94 46

输出 #4

45

说明/提示

限制条件

  • 输入均为整数。
  • 3N1003 \leq N \leq 100
  • 0X100×(N2)0 \leq X \leq 100 \times (N-2)
  • 0Ai1000 \leq A_i \leq 100

样例解释 1

44 轮的分数为 40,60,80,5040,60,80,50。如果第 55 轮取得 7070 分,则分数升序排列为 S=(40,50,60,70,80)S=(40,50,60,70,80),最终结果为 50+60+70=18050+60+70=180。可以证明,为了使最终结果不少于 180180,第 55 轮至少需要取得 7070 分。

样例解释 2

22 轮的分数为 100,100100,100。如果第 33 轮取得 00 分,则分数升序排列为 S=(0,100,100)S=(0,100,100),最终结果为 100100。注意,最大分数 100100 有多个,但只去除其中一个(最小分数同理)。可以证明,为了使最终结果不少于 100100,第 33 轮至少需要取得 00 分。

样例解释 3

44 轮的分数为 0,0,99,990,0,99,99。可以证明,无论第 55 轮取得多少分,最终结果都无法达到 200200

由 ChatGPT 4.1 翻译