其他分享
首页 > 其他分享> > CF1705A Mark the Photographer 题解

CF1705A Mark the Photographer 题解

作者:互联网

这道题目的意思其实就是有 \(2n\) 个人,分两排站。求能否使后面的人的高度 \(-\) 前面的人的高度 \(\ge x\)(第 \(i\) 个人的高度是 \(h_i\))。

这道题一看到题目理所当然的就想到先排序,然后判断 \(h_{i + n}\) 是否比 \(h_i\) 高 \(x\) 个单位。一遇到不符合的立马输出 no,直到最后如果还没有输出 no,就输出 yes

代码

// Author: CrazyWolf

#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e2 + 5;

int h[maxn];

void Work()
{
	int n, x;
	cin >> n >> x;
	for (int i = 1; i <= 2 * n; i ++)
		cin >> h[i];
	sort(h + 1, h + 2 * n + 1);
	bool flag = true;
	for (int i = 1; i <= n; i ++)
	{
		if (h[i + n] - h[i] < x)
			flag = false;
	}
	if (flag)
		cout << "YES\n";
	else
		cout << "NO\n";
}

int main()
{
	int t;
	cin >> t;
	while (t --)
	{
		Work();
	}
	return 0;
}

标签:输出,no,int,题解,Work,高度,maxn,Photographer,CF1705A
来源: https://www.cnblogs.com/GlassMoon/p/16490880.html