Skip to content

E30086: dance

sortings, http://cs101.openjudge.cn/practice/30086/

一所中学的一个班级有 2N 名学生,第 i(1≤i≤2N) 名学生的身高是 Ai。

在即将开始的体育课上,学生们将两两配对,形成 N 组进行舞蹈。

要跳出优美的舞蹈,每一对舞伴之间的身高差必须小于或等于 D。

给定每个学生的身高,确定能否跳出优美的舞蹈。

输入

第一行输入两个整数 N,D。

第二行输入 2N 个整数 A1,A2,…,A2N。

输出

输出一行一个字符串,如果可以跳出优美的舞蹈输出 Yes,否则输出 No。

样例输入

6 4
22 15 32 36 16 30 42 30 39 23 17 18

样例输出

Yes

提示

考虑如下配对方案:

身高 39 的学生和身高 42 的学生配对; 身高 22 的学生和身高 23 的学生配对; 身高 16 的学生和身高 17 的学生配对; 身高 32 的学生和身高 36 的学生配对; 身高 15 的学生和身高 18 的学生配对; 身高 30 的学生和身高 30 的学生配对。 符合条件。

(sorting,greedy)

来源

https://www.luogu.com.cn/problem/P11199(TA-hhy)

python
n, d = map(int, input().split())
heights = list(map(int, input().split()))

# 排序
heights.sort()

# 检查每一对
possible = True
for i in range(0, 2 * n, 2):
    if heights[i + 1] - heights[i] > d:
        possible = False
        break

print("Yes" if possible else "No")