#SummerP0018. GCD?G 题没有 GCD 怎么说得过去!
GCD?G 题没有 GCD 怎么说得过去!
Description
贪吃佘最近收到了一份特殊的礼物:一个长度为 的正整数序列 。
在贪吃佘看来,一个序列足够"清爽",当且仅当任意相邻的两个数都没有大于 的公共因子。也就是说,对每个满足 的位置,都应当有 。
其中 表示整数 和 的最大公约数。
为了把这份礼物整理成自己喜欢的样子,贪吃佘可以进行若干次修改。
每次修改时,他需要选择两个不同的位置 ,并准备两个正整数 ,满足 。
设操作前这两个位置上的数为 。本次操作合法,当且仅当: 也就是说,操作前后这两个数的较小值作为一个数值必须保持不变。
注意:这个较小值不要求仍然位于原来的位置;如果操作前 ,则操作后只需要 中至少有一个数仍等于该值即可。
随后,将 修改为 ,将 修改为 。
现在,贪吃佘想知道如何在不超过 次操作内,将整个序列变成"清爽"的序列。
可以证明,对于任意合法输入,答案一定存在。
Format
Input
第一行给出一个整数 ,表示共有多少组测试数据,其中 。
接下来依次描述每组测试数据。
对于每组测试数据,第一行包含一个整数 ,表示贪吃佘收到的序列长度,其中 。
第二行包含 个正整数 ,表示这份礼物最初的样子,其中 。
保证所有测试数据中, 的总和不超过 。
Output
对于每组测试数据,先输出一个整数 ,表示你打算进行的操作次数,其中 。
注意, 不需要尽可能小,只要不超过 且最终能得到一个"清爽"的序列即可。
接下来的 行中,每行输出四个整数 ,表示一次操作:选择下标 和 ,并将 改为 ,将 改为 。
你的输出需要满足 ,,,并且这次操作必须合法,也就是操作前的 与操作后的 满足 。
如果存在多种可行方案,输出任意一种即可。
Samples
2
5
9 6 3 11 15
3
7 5 13
4
1 3 5 3
2 3 4 3
3 4 3 4
3 5 3 5
2
1 2 6 5
2 3 5 6
Note
来看第一组测试数据。
一开始,序列为 。
第一次操作选择位置 和位置 ,把 改成 ,把 改成 。这次操作是合法的,因为操作前较小的数是 ,操作后较小的数也是 ,即 。
此时序列变为 。
第二次操作选择位置 和位置 ,把 改成 ,把 改成 。这次操作同样合法,因为 。
最终序列变为 。可以检查,任意相邻两个数的最大公约数都等于 ,因此它已经是"清爽"的序列。
对于第二组测试数据,原序列本身就已经满足要求,所以不需要进行任何操作。
相关
在下列比赛中: