#P14795. [JOI 2026 二次预选] 分班 / Class Division

[JOI 2026 二次预选] 分班 / Class Division

题目描述

JOI 高校的一年级共有 NN 人,并被编号为从 11NN

某天,一年级的 NN 人参加了考试。学生 ii1iN1 \le i \le N)的得分为 AiA_i 分。这里,NN 人并不是都取得了相同的分数。

根据这次考试的成绩来决定明年的分班。具体来说,选择一个整数 xx,将 NN 名学生分成两个班:得分在 xx 分以上(含 xx 分)的学生进入升学班,得分低于 xx 分的学生进入普通班。

在此,要求每个班都至少有 11 名学生,并且选择一种分法,使升学班的人数与普通班的人数之差最小。进一步地,如果满足条件的分法有多个,则在其中选择升学班人数最少的分法。

给定学生人数以及每位学生的得分,编写程序求出升学班学生得分的最低分。

输入格式

输入按以下格式给出。

NN
A1  A2    ANA_1\ \ A_2\ \ \dots\ \ A_N

输出格式

输出一行:升学班学生得分的最低分。

3
1000 500 800
1000
6
100 75 41 75 13 89
89
6
20 25 12 7 13 16
16
8
364353982 103422534 437367896 91518637 364353982 221490368 437367896 103422534
364353982

提示

样例解释

样例 11 解释

例如,令 x=900x = 900,则学生 11 被分到升学班,学生 2,32, 3 被分到普通班。

另一种可能的分班方式是,将学生 1,31, 3 分到升学班,将学生 22 分到普通班。比如令 x=800x = 800 就可以实现这一点。

这两种分法中,升学班人数与普通班人数之差都为 11。因此,会选择升学班人数最少的前一种分法。此时,升学班学生得分的最低分是 10001\,000 分。

该输入样例满足所有子任务的约束。

样例 2 解释

x=89x = 89,则学生 1,61, 6 被分到升学班,学生 2,3,4,52, 3, 4, 5 被分到普通班。此时升学班学生得分的最低分为 8989 分。

该输入样例满足子任务 4 的约束。

样例 33 解释

该输入样例满足子任务 3, 4 的约束。

样例 44 解释

该输入样例满足子任务 4 的约束。

约束

  • 2N5000002 \le N \le 500\,000
  • 1Ai1091 \le A_i \le 10^91iN1 \le i \le N)。
  • 存在 i,ji, j1i<jN1 \le i < j \le N)使得 AiAjA_i \ne A_j
  • 输入的值均为整数。

子任务

  • (20 pts)\text{(20 pts)}N=3N = 3
  • (20 pts)\text{(20 pts)}AiA_i500,800,1000500, 800, 1\,000 之一(1iN1 \le i \le N)。
  • (20 pts)\text{(20 pts)}AiAjA_i \ne A_j1i<jN1 \le i < j \le N)。
  • (40 pts)\text{(40 pts)}:无额外约束。