183632025-10-21 14:00:28ubormaciGyilkos ketrecekcpp17Accepted 100/10020ms624 KiB
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <cmath>
#include <array>
#include <string>
#include <cstdio>
#include <iterator>
#include <unordered_set>
#include <cstdint>
#include <queue>
#include <stack>
#include <deque>
#include <numeric>
#include <fstream>
using namespace std;

template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; }
template<typename T_container, typename T = typename enable_if<!is_same<T_container, string>::value, typename T_container::value_type>::type> ostream& operator<<(ostream &os, const T_container &v) { os << '{'; string sep; for (const T &x : v) os << sep << x, sep = ", "; return os << '}'; }
void dbg_out() { cout << endl; }
template<typename Head, typename... Tail> void dbg_out(Head H, Tail... T) { cout << ' ' << H; dbg_out(T...); }
#ifdef LOCAL
#define dbg(...) cout << "(" << #__VA_ARGS__ << "):", dbg_out(__VA_ARGS__)
#else
#define dbg(...)
#endif

/*

notes:

int64_t
stoi(string s) -> string to int
to_string() -> int (or else) to string

vector declaration:
vector<ll> v(n, 0)
vector<vector<ll>> v(n, vector<ll>(n, 0));

{if statement} ? {truth value} : {false value}

set lower bound/upper bound:
 	// . . . m1 . . . d . . . . m2
    auto m1_it = b.lower_bound(d);
    advance(m1_it, -1);
    m1 = *m1_it;
	m2 = *b.upper_bound(d);

#ifdef LOCAL
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
#endif

constexpr auto lcm(auto x, auto... xs)
{
	return ((x = std::lcm(x, xs)), ...);
}

std::gcd(int a, int b)

*/

typedef long long ll;

void solve() {
	ll n, k;
	cin >> n >> k;

	/*
	
	N és K esetén van-e egyedi módja annak, hogy N-et felírjuk K
	különböző pozitív egész szám összegeként?

	*/

	if(k == 1) {
		cout << "YES\n";
		return;
	}

	ll minim = (k * (k+1))/2;
	if(minim > n || minim + 2 <= n) {
		cout << "NO\n";
		return;
	}else{
		cout << "YES\n";
		return;
	}

}

int main()
{
	std::ios_base::sync_with_stdio(false);

	ll tests = 0;
	cin >> tests;

	while(tests--)
	{
		solve();
	}

	return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted1ms500 KiB
subtask217/17
3Accepted1ms316 KiB
subtask322/22
4Accepted1ms316 KiB
5Accepted17ms444 KiB
6Accepted18ms440 KiB
7Accepted17ms440 KiB
8Accepted17ms316 KiB
9Accepted18ms504 KiB
10Accepted17ms316 KiB
11Accepted18ms432 KiB
12Accepted17ms500 KiB
subtask433/33
13Accepted1ms316 KiB
14Accepted17ms444 KiB
15Accepted18ms440 KiB
16Accepted17ms440 KiB
17Accepted17ms316 KiB
18Accepted18ms504 KiB
19Accepted17ms316 KiB
20Accepted18ms432 KiB
21Accepted17ms500 KiB
22Accepted18ms316 KiB
23Accepted18ms624 KiB
24Accepted18ms316 KiB
25Accepted17ms316 KiB
26Accepted18ms436 KiB
27Accepted17ms448 KiB
28Accepted17ms316 KiB
29Accepted19ms316 KiB
30Accepted18ms504 KiB
31Accepted17ms444 KiB
32Accepted18ms436 KiB
subtask528/28
33Accepted1ms316 KiB
34Accepted17ms444 KiB
35Accepted18ms440 KiB
36Accepted17ms440 KiB
37Accepted17ms316 KiB
38Accepted18ms504 KiB
39Accepted17ms316 KiB
40Accepted18ms432 KiB
41Accepted17ms500 KiB
42Accepted18ms316 KiB
43Accepted18ms624 KiB
44Accepted18ms316 KiB
45Accepted17ms316 KiB
46Accepted18ms436 KiB
47Accepted17ms448 KiB
48Accepted17ms316 KiB
49Accepted19ms316 KiB
50Accepted18ms504 KiB
51Accepted17ms444 KiB
52Accepted18ms436 KiB
53Accepted17ms316 KiB
54Accepted17ms452 KiB
55Accepted19ms316 KiB
56Accepted17ms508 KiB
57Accepted17ms316 KiB
58Accepted19ms316 KiB
59Accepted18ms316 KiB
60Accepted18ms440 KiB
61Accepted20ms316 KiB
62Accepted18ms500 KiB
63Accepted19ms508 KiB