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 — nn and kk , where nn is even. Next, he takes all the integers from 11 to nn , and splits them all into pairs (a,b)(a, b) (each integer must be in exactly one pair) so that for each pair the integer (a+k)b(a + k) \cdot b is divisible by 44 (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 nn and kk .

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 tt ( 1t1041 \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 nn and kk ( 2n21052 \leq n \leq 2 \cdot 10^5 , 0k1090 \leq k \leq 10^9 , nn is even) — the number of integers and the number being added kk .

It is guaranteed that the sum of nn over all test cases does not exceed 21052 \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 n2\frac{n}{2} lines output pairs of the split, in each line print 22 numbers — first the integer aa , then the integer bb .

输入输出样例

  • 输入#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)(1, 2) and (3,4)(3, 4) is suitable, same as splitting into (1,4)(1, 4) and (3,2)(3, 2) .

In the second test case, (1+0)2=1(2+0)=2(1 + 0) \cdot 2 = 1 \cdot (2 + 0) = 2 is not divisible by 44 , so there is no partition.

首页