CF2137B.Fun Permutation
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 n 的排列 p。
你的任务是找到一个长度为 n 的排列 q,使得对于所有 1≤i<n,都有 gcd(pi+qi,pi+1+qi+1)≥3。换句话说,任意相邻两个位置上的和的最大公约数不少于 3。
可以证明这样的 q 总是存在。
一个长度为 m 的排列是由 1 到 m 的 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)。
保证给定的数组 p 构成一个排列。
保证所有测试用例中 n 的总和不超过 2×105。
输出格式
对于每个测试用例,输出一行排列 q。如果有多种答案,可以输出任意一种。
输入输出样例
输入#1
3 3 1 3 2 5 5 1 2 4 3 7 6 7 1 5 4 3 2
输出#1
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,因此输出是正确的。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?