#CF1994D. Funny Game
Funny Game
有趣的游戏
时间限制:2 秒
空间限制:256 MB
Vanya 有一张 个顶点的图(编号从 到 )和一个包含 个整数的数组 ;初始时图中没有任何边。Vanya 觉得无聊,为了找点乐子,他决定执行 次操作。
第 次操作(操作按顺序从 开始编号)如下:
- 选择两个不同的数 ,使得 能被 整除。
- 在图中添加一条连接顶点 和 的无向边。
请帮助 Vanya 使用这 次操作得到一个连通图,或者判断这是不可能的。
- 一张图如果可以通过边从任意顶点到达其他任意顶点,则称为连通的。
输入格式
每个测试包含多个测试用例。第一行包含一个整数 ()—— 测试用例数。接下来是各个测试用例的描述。
每个测试用例的第一行包含一个整数 ()—— 图中顶点的数量。
第二行包含 个整数 ()。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,如果不存在解决方案,则输出 No(不含引号)。
否则,输出 Yes(不含引号),然后输出 行,其中第 行输出第 次操作需要选择的两个顶点 和 。
你可以输出大写或小写字母(例如,字符串 yEs、yes、Yes 和 YES 都会被认为是肯定回答)。
样例输入
8
2
1 4
4
99 7 1 13
5
10 2 31 44 73
5
87 6 81 44 32
5
62 35 33 79 16
5
6 51 31 69 42
5
52 63 25 21 5
12
33 40 3 11 31 43 37 8 50 5 12 22
样例输出
YES
2 1
YES
4 1
2 1
3 2
YES
5 1
4 1
3 1
2 1
YES
4 1
3 1
2 1
5 4
YES
3 1
5 1
2 1
4 2
YES
4 1
5 1
2 1
3 2
YES
2 1
5 2
3 1
4 3
YES
9 1
12 9
11 1
10 1
6 1
7 6
2 1
8 2
5 2
3 1
4 1
样例解释
以第二个测试用例为例。
第一次操作():可以选择顶点 和 ,因为 , 能被 整除。
第二次操作():可以选择顶点 和 ,因为 , 能被 整除。

第三次操作():可以选择顶点 和 ,因为 , 能被 整除。

从图示可以看出,得到的是一张连通图。