Loading

题解:P11199 [JOIG 2024 Open] ダンス / Dance

[JOIG 2024 Open] ダンス / Dance

思路:

我们对 \(2N\) 个学生身高进行排序,每相邻两个为一组,若有一组或以上身高差大于 \(D\),则不合法,否则合法。

原因:设 \(a\)\(b\)\(c\)\(d\) 身高顺序不递减,要保证 \(a\) 所在组合合法,\(a\)\(b\) 搭配最佳,\(c\) 同理应与 \(d\) 搭配。

注意 \(1 \le N \le 100\),那么数组大小要开到至少 \(200\)

代码:

#include<bits/stdc++.h>
using namespace std;
int N, D;
int A[205];
int main() {
	cin >> N >> D;
	for(int i=1; i<=2*N; i++) cin >> A[i];
	sort(A+1, A+(2*N)+1);
	for(int i=1; i<=2*N; i+=2) {
		if(A[i+1]-A[i]>D) {
			cout << "No";
			return 0;
		} 
	}
	cout << "Yes";
	return 0;
}
posted @ 2024-10-17 14:23  Anins  阅读(36)  评论(0)    收藏  举报  来源