-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy patha.cpp
37 lines (34 loc) · 783 Bytes
/
a.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <bits/stdc++.h>
#define EPSILON 0.0000001
using namespace std;
typedef long long ll;
typedef double db;
db calc(int D, int x){
return x + ((db)D / (x + 1));
}
int main(){
int T;
cin >> T;
for(int tc = 0; tc < T; tc++){
int N, D;
cin >> N >> D;
ll h = 1000000000;
ll l = 0;
ll m = (h + l) / 2;
db prev = calc(D, m);
while(h >= l){
if(calc(D, m - 1) <= prev){
h = m - 1;
}else if (calc(D, m + 1) <= prev){
l = m + 1;
}else{
break;
}
m = (h + l) / 2;
prev = calc(D, m);
}
if(prev <= N) cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}