shendeliliang 想要和 StarSilk 一起刷题,他先找 HFDLYS 帮忙写了一个挑选题目的程序,这个程序可以实现先从 CodeForces 的题库中选择 $2n$ 道题目,并对这 $2n$ 道题进行难度评估。具体来说,程序会给每一道题目评估一个难度等级 $i$,且保证这 $2n$ 道题目的难度等级是一个长度为 $2n$ 的排列。在评估完难度后,程序会进行 $n$ 次投题,每次会等可能地随机从还未投放的题目中抽出两道题目分别给 shendeliliang 和 StarSilk 做,由于 StarSilk 太牛了,所以每一次 StarSilk 都会分配到这两道题中难度等级更高的那一道。因为 shendeliliang 很听话,所以他听从了 StarSilk 的建议,在做题的时候不会去看这个题的难度等级,以免因为这个题的难度等级而对这个题产生畏惧心理。现在,shendeliliang 和 StarSilk 已经做完了全部 $2n$ 道题,shendeliliang 准备去看一下每一道题的难度等级。shendeliliang 有一个幸运数字 $k$,在看到每道题难度等级之前,他想知道这样一件事情:设 shendeliliang 做的所有题中难度等级最大的一道题的难度等级为 $x$,StarSilk 做的所有题中难度等级最小的一道题的难度等级为 $y$,是否存在一种可能的难度等级分布使得 $x-y$ 正好是他的幸运数字 $k$?由于 shendeliliang 太不牛了,他无法自己解决这个问题,聪明的你能帮帮他吗?
第一行输入一个整数 $t$,代表测试点个数
每个测试点输入一行,一行为两个整数 $n$ 和 $k$。
$1\leq t\leq 10^5,1\leq n\leq10^5,|k|\leq 2n-1$,保证所有测试点的 $n$ 之和不超过 $10^5$。
对于每个测试点,如果 $x-y$ 等于 $k$,输出三行,第一行为 YES
,第二行为一个长为 $n$ 的数组 $a$,代表 shendeliliang 每一次做到的题的难度等级,第三行为一个长为 $n$ 的数组 $b$,代表 StarSilk 每一次做到的题的难度等级,同一行的数组元素之间用一个空格隔开,每一行的最后一个数组元素后面输出换行,否则输出一行NO
,其中YES
和NO
均不区分大小写。
若 $x-y=k$,输出需保证对于所有的 $1\leq i\leq n$,有 $1\leq a[i]<b[i]\leq 2n$,且 $a_1,a_2,\dots,a_n,b_1,b_2,\dots,b_n$ 是一个长为 $2n$ 的排列。
一个长为 $i$ 的排列是指元素个数为 $i$,且 $1,2,\dots,i$ 的每一个数都出现且仅出现一次的数组,如 $1,2,3$ 是一个长度为 $3$ 的排列,而 $1,2,2$ 不是,因为在 $1,2,2$ 中,$2$ 出现了 $2$ 次,$3$ 没有出现。