题目描述
给定一个大小为 n 的排列∗ p。
你的任务是找到一个大小为 n 的排列 q,满足对于所有 1≤i<n,都有 gcd†(pi+qi, pi+1+qi+1)≥3。
换句话说,任意相邻两个位置的和的最大公约数必须至少为 3。
题目保证解一定存在。
∗ 长度为 m 的排列是一个由 1 到 m 的不同整数任意顺序组成的数组。例如,[2,3,1,5,4] 是一个排列;但 [1,2,2] 不是(数字 2 重复出现);[1,3,4] 也不是(m=3 但数组中出现了 4)。
† gcd(x,y) 表示整数 x 和 y 的最大公约数。
输入格式
每个测试用例包含多组数据。
第一行输入测试用例数 t(1≤t≤104)。
每组测试用例的描述如下:
第一行包含一个整数 n(2≤n≤2⋅105)。
第二行包含 n 个整数 p1,p2,…,pn(1≤pi≤n)。
保证输入的数组是一个排列,且所有测试用例的 n 之和不超过 2⋅105。
输出格式
对于每个测试用例,在新的一行输出排列 q。如果存在多个答案,输出任意一个即可。
样例输入
3
3
1 3 2
5
5 1 2 4 3
7
6 7 1 5 4 3 2
样例输出
2 3 1
4 5 1 2 3
2 1 3 7 5 6 4
样例说明
在第一个测试用例中:
gcd(1+2, 3+3)=3≥3,gcd(3+3, 2+1)=3≥3,因此输出合法。