#P9643. 智乃的差分

智乃的差分

题目描述

智乃最近学习了一个叫做「差分」的操作,差分操作是指对一个大小为 NN 的数组 aa 而言,我们定义 dd 数组是 aa 数组的差分数组,则有

$$\begin{cases} d_0=a_0\\d_i=a_i-a_{i-1} & i\ge 1 \end{cases} $$

显然,差分数组 dd 的大小也是 NN,智乃对于数字有这自己的喜好,具体来讲,她不喜欢整数 xx,所以她不希望在差分数组中 dd 出现 xx

所以现在请你对数组 aa 重新排序,使得排序后求出关于数组 aa 的差分数组 dd 中的任何一个元素不等于 xx

如果能够做到的话首先输出一行字符串 yes,然后输出任意一种数组 aa 重新排序后的顺序(当然,也可以保持原顺序不动)。如果做不到的话就输出 no

d,ad,a 的数组下标从 00 开始计算,整个数组元素的下标范围为 [0,N1][0,N−1]

输入格式

首先输入一行一个正整数 TT 表示测试案例的数目,对于每组测试案例:

  • 首先输入两个整数 N,xN, x 表示数组长度,以及智乃酱不希望在差分数组中出现的数字。
  • 接下来一行输入 NN 个非负整数 aia_i 表示需要你排序的数组。

输出格式

对于每组案例:

  • 如果存在任何一种合法的答案,首先输出一行字符串 yes,然后输出任意一种数组 aa 重新排序后的顺序(当然,也可以保持原顺序不动)。

  • 如果做不到的话就只输出一行输出 no

样例

2
3 5
9 100 112
1 1000000000
1000000000
yes
100 9 112
no

对于第二组案例,只有一个数字的时候,差分数组一定是 10910^9,不存在任何一种顺序使得差分数组中不出现 xx,所以输出 no

见附加文件中的 a2.in
见附加文件中的 a2.out

数据范围

  • 对于 20%20\% 的测试数据,保证 N10N\le 10
  • 对于 40%40\% 的测试数据,保证 N103N\le 10^3
  • 对于 100%100\% 的测试数据,保证 1T2×1051\le T\le 2\times 10^51N1051\le N\le 10^5109x109-10^9\le x\le 10^90ai1090\le a_i\le 10^9N2×106\sum N\le 2\times 10^6

注意,本题输入量较大,请勿使用不带有任何优化的 cin 读入数据。

本题为 spj,你可以输出任何符合题目要求的答案。