题库练习 Mathematical Circus
← 上一题 下一题 →

A15324 | Mathematical Circus

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

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) \cdot 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 \leq t \leq 10^4$ ) — 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 \leq n \leq 2 \cdot 10^5$ , $0 \leq k \leq 10^9$ , $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 \cdot 10^5$ .

输出格式

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 $\frac{n}{2}$ 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
C++ 编辑器
输入
输出