#2622. 绝对值(慈溪2022第4题)

绝对值(慈溪2022第4题)

Description

慈溪小学编程复赛马上就要到来了,小 A 和小 B 正在做最后的准备工作。
老师最近给小 A 和小 B 考了这样一个问题:有 N 个正整数 a1,a2,..,aN, 对这些正整数任意 2 个做差以后求绝对值。例如,我们对 ai 和 aj 作差,可以得到 |ai −aj|。显然,这样的差一共有N*(N-1)/2个。
我们令 ,输入的 N 保证 M 一定是一个偶数。老师现在想让小 A 和小 B 求出所有这些绝对值里面从小到大第N*(N-1)/4小的数。
小 A 和小 B 想了很久,想请你来帮助他们。
注意:在数学中,我们规定一个负数的绝对值就是把它的负号去掉以后的数,例如,|-5| = 5, 而 0 和正数的绝对值还是它本身。

Input Format

输入的第一行是一个正整数 N,表示数的个数。
接下来 N 行,每行一个正整数,表示 ai。

Output Format

输出所有绝对值中从小到大第N*(N-1)/4小的数。
4
1
10
2
3
2

Hint

【样例解释】

样例中,我们总共有 4 个数,求出来的绝对值分别是:|1 − 10| = 9,|1 − 2| =1,|1 − 3| = 2,|10 − 2| = 8,|10 − 3| = 7,|2 − 3| = 1,从小到大排序以后就是 1,1,2,7,8,9。M 是 3,所以第 M 小的数是 2。

Source

二分答案 二分查找