题意:寻找一个数x,使得\(x + \lceil \frac{d}{x + 1} \rceil\)和n相等或者小于n,如果存在这样一个数x,就输出YES,否则输出NO,或者当d <= n时,输出YES。

分析:\(x + \lceil \frac{d}{x + 1} \rceil\) 可以化成\(\lceil x + \frac {d}{x + 1} \rceil\),因为x是整数,向上取整,依然等于x,所以可以合并到里面,然后,我们再进一步化公式,
\(\lceil {(x + 1)} + \frac{d}{x + 1} - 1 \rceil\) \(\geq \lceil 2\sqrt{d} - 1 \rceil\) (基本不等式),那么我们只需要判断该最小值\(2\sqrt{d}-1\)是否小于等于n,如果不存在,那么输出YES,否则输出NO。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

int main()
{
	int t;
	cin >> t;

	while (t--)
	{
		int n, d;
		cin >> n >> d;

		int t = static_cast<int>(ceil(2 * sqrt(d) - 1));

		if (t <= n)
			puts("YES");
		else
			puts("NO");

		
	}
	return 0;
}