AT_joi2026_yo2_a.クラス分け (Class Division)

普及-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

JOI 高校的一年级学生共有 NN 人,编号从 11 到 NN。

某天,这 NN 名一年级学生参加了一场考试。第 ii 位学生的分数为 AiA_i。这里,所有 NN 名学生的分数不全相同。

根据本次考试的成绩,将决定下一学年的班级分组。具体来说,会选择一个整数 xx,分数不低于 xx 的学生被分入“进学班”,分数低于 xx 的学生被分入“普通班”,将 NN 名学生分为两个班级。

分班时,需要满足以下条件:每个班级至少有 11 名学生;同时,应选择使进学班人数和普通班人数的差的绝对值最小的分法。同时,如果存在多种符合上述要求的分法,则选择其中进学班人数最少的那一种。

现给定学生人数及各自的分数,编写程序求出进学班学生的分数最低线。

输入格式

输入格式如下:

NN A1A_1 A2A_2 ⋯\cdots ANA_N

输出格式

请在一行输出进学班中学生的分数最低线。

输入输出样例

  • 输入#1

    3
    1000 500 800

    输出#1

    1000
  • 输入#2

    6
    100 75 41 75 13 89

    输出#2

    89
  • 输入#3

    6
    20 25 12 7 13 16

    输出#3

    16
  • 输入#4

    8
    364353982 103422534 437367896 91518637 364353982 221490368 437367896 103422534

    输出#4

    364353982

说明/提示

子任务

  1. (2020 分) N=3N = 3。
  2. (2020 分) 所有 AiA_i 均为 500,800,1 000500, 800, 1\,000 中的某个数(1≤i≤N1 \leq i \leq N)。
  3. (2020 分) Ai≠AjA_i \neq A_j(1≤i<j≤N1 \leq i < j \leq N)。
  4. (4040 分) 无额外限制。

样例解释 1

例如,若 x=900x = 900,则学生 1 进入进学班,学生 2、3 进入普通班。

另一种分法是让学生 1、3 进入进学班,学生 2 进入普通班,这在 x=800x = 800 时可以实现。

这两种分法下,进学班与普通班人数差均为 11。所以选择进学班人数较少的第一种情况。此时进学班的最低分为 1 0001\,000。

该样例满足所有子任务的限制。

样例解释 2

当 x=89x = 89 时,学生 1、6 进入进学班,学生 2、3、4、5 进入普通班。此时进学班的最低分为 8989。

该样例满足子任务 44 的限制。

样例解释 3

该样例满足子任务 3,43, 4 的限制。

样例解释 4

该样例满足子任务 44 的限制。

限制

  • 2≤N≤500 0002 \leq N \leq 500\,000。
  • 1≤Ai≤1091 \leq A_i \leq 10^9(1≤i≤N1 \leq i \leq N)。
  • 存在某 i,ji, j(1≤i<j≤N1 \leq i < j \leq N),使得 Ai≠AjA_i \neq A_j。
  • 输入均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页