183632025-10-21 14:00:28ubormaciGyilkos ketrecekcpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms500 KiB
subtask217/17
3Elfogadva1ms316 KiB
subtask322/22
4Elfogadva1ms316 KiB
5Elfogadva17ms444 KiB
6Elfogadva18ms440 KiB
7Elfogadva17ms440 KiB
8Elfogadva17ms316 KiB
9Elfogadva18ms504 KiB
10Elfogadva17ms316 KiB
11Elfogadva18ms432 KiB
12Elfogadva17ms500 KiB
subtask433/33
13Elfogadva1ms316 KiB
14Elfogadva17ms444 KiB
15Elfogadva18ms440 KiB
16Elfogadva17ms440 KiB
17Elfogadva17ms316 KiB
18Elfogadva18ms504 KiB
19Elfogadva17ms316 KiB
20Elfogadva18ms432 KiB
21Elfogadva17ms500 KiB
22Elfogadva18ms316 KiB
23Elfogadva18ms624 KiB
24Elfogadva18ms316 KiB
25Elfogadva17ms316 KiB
26Elfogadva18ms436 KiB
27Elfogadva17ms448 KiB
28Elfogadva17ms316 KiB
29Elfogadva19ms316 KiB
30Elfogadva18ms504 KiB
31Elfogadva17ms444 KiB
32Elfogadva18ms436 KiB
subtask528/28
33Elfogadva1ms316 KiB
34Elfogadva17ms444 KiB
35Elfogadva18ms440 KiB
36Elfogadva17ms440 KiB
37Elfogadva17ms316 KiB
38Elfogadva18ms504 KiB
39Elfogadva17ms316 KiB
40Elfogadva18ms432 KiB
41Elfogadva17ms500 KiB
42Elfogadva18ms316 KiB
43Elfogadva18ms624 KiB
44Elfogadva18ms316 KiB
45Elfogadva17ms316 KiB
46Elfogadva18ms436 KiB
47Elfogadva17ms448 KiB
48Elfogadva17ms316 KiB
49Elfogadva19ms316 KiB
50Elfogadva18ms504 KiB
51Elfogadva17ms444 KiB
52Elfogadva18ms436 KiB
53Elfogadva17ms316 KiB
54Elfogadva17ms452 KiB
55Elfogadva19ms316 KiB
56Elfogadva17ms508 KiB
57Elfogadva17ms316 KiB
58Elfogadva19ms316 KiB
59Elfogadva18ms316 KiB
60Elfogadva18ms440 KiB
61Elfogadva20ms316 KiB
62Elfogadva18ms500 KiB
63Elfogadva19ms508 KiB