Problem Description

AliceBob 在玩游戏。

桌面上有两堆金币,少的那堆有 x 个金币,多的那堆有 2x 个金币。

假设金币可以被无限细分。AliceBob 事先都不知道 x是几,但是他们都知道 x是一个 (0, 1]之间均匀分布的随机实数。

Alice 会等概率的被分配到其中的一堆金币,Bob 会得到另一堆。x的值和两堆金币的分配是相互独立的。

拿到金币以后,Alice 会马上数清自己拿到多少金币。然后 Alice 可以选择是否和 Bob 那堆换。

给定 Alice 拿到的金币数目,请问 Alice 要不要交换,使得她期望能得到的金币数目更多?

如果交换期望得到的金币数目多于不交换期望得到的金币数目,输出交换,否则不交换。

Input

第一行一个正整数test (1≤test≤200000) 表示数据组数。

接下来每行一个小数p(0<p≤2),p最多保留五位小数,表示 Alice 拿到的金币数目。

Output

对于每组数据,输出 Yes 表示需要交换,输出 No 表示不要交换。

Sample Input

1
2
1
1.00000

Sample Output

1
Yes
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
38
39
40
41
42
43
44
45
46
#include <iostream>
#include<vector>
#include<algorithm>
#include <string>

using namespace std;

vector<string> compute()
{
int groupNum;
std::cin >> groupNum;
vector<string> output;
for (int i = 0; i < groupNum; i++)
{
float num;
std::cin >> num;
//float exception;
if (num > 1)
{
output.push_back("No");
}
else
{
if (2 * num * 0.5 + num / 2 * 0.5 > num)
{
output.push_back("Yes");
}
else
{
output.push_back("No");
}
}
}
return output;
}

int main()
{
vector<string> res = compute();
for (int i = 0; i < res.size(); i++)
{
//cout << res[i];
printf("%s\n", res[i].c_str());
}
return 0;
}