编程题
### 问题描述
在洛桥城市,有一位名叫诺伊的年轻人。他是一位热衷于数学与逻辑谜题的人,他的朋友星迪知道这一点,并经常会向他提出一些有趣的挑战。某日,星迪向诺伊提出了一个关于数组的挑战。
星迪给诺伊一个大小为 $N$ 的数组 $A$ 和一个整数 $K$。诺伊可以对这个数组执行任意次(可能为零次)以下操作:
选择两个整数 $L$ 和 $R$ ($1 \leq L \leq R \leq N$),然后对每个满足 $L \leq i \leq R$ 的 $i$,将 $A_i$ 设置为 $A_{\lfloor \frac{L+R}{2} \rfloor}$。这里,$\lfloor \rfloor$ 表示向下取整函数。
也就是说,对子数组 $[L, R]$ 执行以下操作:
- 如果这个子数组的长度为奇数,将所有元素设置为中间元素。
- 如果这个子数组的长度为偶数,则将所有元素设置为两个中间元素中的左边一个。
诺伊的目标是,通过一些操作后,能否使数组中所有元素都等于 $K$?他需要你的帮助来解决这个问题。
### 输入格式
输入的第一行将包含一个单独的整数 $T$,表示测试用例的数量。
每个测试用例包含两行输入。
每个测试用例的第一行包含两个由空格分隔的整数 $N$ 和 $K$ ——数组的元素数量和值 $K$。
每个测试用例的第二行包含 $N$ 个由空格分隔的整数 $A_1, A_2, ..., A_N$ ——数组的元素。
数据范围保证:
- $1 \leq T \leq 10^5$。
- $1 \leq N \leq 10^5$。
- $-10^9 \leq K \leq 10^9$。
- $1 \leq A_i \leq 10^9$。
- 保证每个测试样例 $N$ 的总和不超过 $5 \times 10^5$。
### 输出格式
对于每个测试用例,在新的一行上输出答案:如果所有元素都可以设置为 $K$,则输出 "Yes";否则输出 "No"。
### 样例输入
```text
4
4 10
1 2 3 4
3 1
1 2 3
5 5
7 -5 5 -2 5
4 9
-9 -9 8 0
```
### 样例输出
```text
No
Yes
Yes
No
```
### 说明
- 测试用例 1:没有办法使数组中的所有元素都等于 $10$。
- 测试用例 2:执行操作的一种方式如下:
1. 首先,选择 $L=1$ 和 $R=2$。这使得数组变为 $[1,1,3]$。
2. 然后,选择 $L=1$ 和 $R=3$。这使得数组变为 $[1,1,1]$,完成任务。
- 测试用例 3:选择 $L=1$ 和 $R=5$。因为中间元素是 $5$,所以所有元素都变为 $5$,满足要求。
- 测试用例 4:没有办法使所有元素都等于 $9$。