#CF2137B. Fun Permutation

    ID: 6951 传统题 1000ms 256MiB 尝试: 2 已通过: 0 难度: 10 上传者: 标签>构造数学数论CodeforcesCodeforces Round 1047(Div3)Div3BCF2137B900

Fun Permutation

题目描述

给定一个长度为 nn 的排列 pp

你的任务是找到一个长度为 nn 的排列 qq,使得对于所有 1i<n1 \leq i < n,都有 gcd(pi+qi,  pi+1+qi+1)3\gcd(p_i+q_i,\; p_{i+1}+q_{i+1}) \geq 3。换句话说,任意相邻两个位置上的和的最大公约数不少于 33

可以证明这样的 qq 总是存在。

一个长度为 mm 的排列是由 11mmmm 个不同整数按任意顺序组成的数组。例如,[2,3,1,5,4][2,3,1,5,4] 是一个排列,但 [1,2,2][1,2,2] 不是排列(22 在数组中出现了两次),[1,3,4][1,3,4] 也不是排列(m=3m=3,但数组中有 44)。

gcd(x,y)\gcd(x, y) 表示整数 xxyy 的最大公约数。

输入格式

输入包含多组测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例个数。

每个测试用例第一行包含一个整数 nn2n2×1052 \leq n \leq 2\times 10^5)。

第二行包含 nn 个整数 p1,p2,,pnp_1,p_2,\ldots,p_n1pin1 \leq p_i \leq n)。

保证给定的数组 pp 构成一个排列。

保证所有测试用例中 nn 的总和不超过 2×1052\times 10^5

输出格式

对于每个测试用例,输出一行排列 qq。如果有多种答案,可以输出任意一种。

样例

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)=33\gcd(1+2, 3+3) = 3 \geq 3gcd(3+3,2+1)=33\gcd(3+3, 2+1) = 3 \geq 3,因此输出是正确的。

由 ChatGPT 5 翻译

来源

Codeforces 2137B,英文题名 Fun Permutation。