#Z02184. 找朋友

找朋友

题目描述

班级里有 N 位同学,编号从 1 到 N 。每位同学按顺序寻找“隔 M 位”的同学作为朋友。具体规则如下:   1.每位同学按编号顺序寻找朋友,如果发现自己前面已经有朋友的同学,则跳过,继续寻找下一个没有朋友的同学。   2. 每位同学找朋友时,会跳过 M-1 位同学,与第 M 个同学成为朋友。

输入格式

第一行包含一个整数 T (1 ≤ T ≤ 500),表示测试用例的数量。 每个测试用例包含两个整数 N (1 ≤ N ≤ 200,000)和 M (1 ≤ M ≤ 200,000)。

输出格式

对于每个测试用例: 如果能够让所有同学都成功找到一个朋友,则输出 YES,并列出每对朋友的配对关系。 配对关系按 a:b 的格式输出,其中 a 是主动找朋友的同学编号,b 是与之成为朋友的同学编号。 每对关系按编号从小到大输出,例如 1:3,2:4,依次类推。 如果无法让所有同学找到朋友,则输出 NO。

2
8 2
8 10
YES
1:3
2:4
5:7
6:8
NO

提示

在第一个测试用例中(8, 2),可以按规则让所有同学找到朋友,输出 YES 并列出每对朋友关系。 在第二个测试用例中(8, 10),由于间隔太大,无法让所有同学找到朋友,因此输出 NO。