CF1719B.Mathematical Circus
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
A new entertainment has appeared in Buryatia — a mathematical circus! The magician shows two numbers to the audience — n and k , where n is even. Next, he takes all the integers from 1 to n , and splits them all into pairs (a,b) (each integer must be in exactly one pair) so that for each pair the integer (a+k)⋅b is divisible by 4 (note that the order of the numbers in the pair matters), or reports that, unfortunately for viewers, such a split is impossible.
Burenka really likes such performances, so she asked her friend Tonya to be a magician, and also gave him the numbers n and k .
Tonya is a wolf, and as you know, wolves do not perform in the circus, even in a mathematical one. Therefore, he asks you to help him. Let him know if a suitable splitting into pairs is possible, and if possible, then tell it.
输入格式
The first line contains one integer t ( 1≤t≤104 ) — the number of test cases. The following is a description of the input data sets.
The single line of each test case contains two integers n and k ( 2≤n≤2⋅105 , 0≤k≤109 , n is even) — the number of integers and the number being added k .
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105 .
输出格式
For each test case, first output the string "YES" if there is a split into pairs, and "NO" if there is none.
If there is a split, then in the following 2n lines output pairs of the split, in each line print 2 numbers — first the integer a , then the integer b .
输入输出样例
输入#1
4 4 1 2 0 12 10 14 11
输出#1
YES 1 2 3 4 NO YES 3 4 7 8 11 12 2 1 6 5 10 9 YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14
说明/提示
In the first test case, splitting into pairs (1,2) and (3,4) is suitable, same as splitting into (1,4) and (3,2) .
In the second test case, (1+0)⋅2=1⋅(2+0)=2 is not divisible by 4 , so there is no partition.