cf
洛谷
#include <bits/stdc++.h>
#include <iostream>
#include<unordered_map>
#define x first
#define y second
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
using namespace std;
typedef long long LL ;
typedef unsigned long long ULL ;
typedef pair<int,int> PII ;
typedef pair<LL,int> PLI ;
const int N = 2e5+10,M = 1000 * 100000 + 10 ,mod = 1000000007,INF1 = 0x3f3f3f3f;
const LL INF2 = 1e17;
// x < k-1 === x <= k-2
// 菊花图 直径长度 2 ,完全图 直径长度 1
int n,m,k;
inline void solve() {
cin >> n >> m >> k;
if (m > n * (1ll * n - 1) /2 || m < n - 1) // 1 判断边界
// 超过了完全图 图不连通
{
cout << "NO" << endl;
return;
}
if (n == 1) // 2 一个点的时候
{
if(k > 1 ) cout << "YES" << endl;
else cout<< "NO" <<endl;
}
else if(m < n * (1ll * n - 1) /2 ) // 3 (非完全图)介于 菊花图 和 完全图之间 树的直径为2
{
if(k > 3) // k >=4 k-2 >= 2
cout << "YES" << endl;
else cout<< "NO" <<endl;
}
else if(k > 2) cout << "YES" << endl; //完全图的合法情况
else cout<< "NO" <<endl; // 完全图 的非法情况
}
signed main()
{
ios
int T;cin>>T;
while(T -- )
{
solve();
}
return 0;
}