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")