You are given a permutation† a of length n . Find any permutation b of length n such that a1+b1≤a2+b2≤a3+b3≤…≤an+bn . It can be proven that a permutation b that satisfies the condition above always exists. † A permutation of length n is an array consisting of n distinct integers from 1 to n in arbitrary order. For example, [2,3,1,5,4] is a permutation, but [1,2,2] is not a permutation (2 appears twice in the array), and [1,3,4] is also not a permutation (n=3 but there is 4 in the array). Input Each test contains multiple test cases. The first line of input contains a single integer t (1≤t≤2000 ) — the number of test cases. The description of test cases follows. The first line of each test case contains a single integer n (1≤n≤100 ) — the length of permutations a and b . The second line of each test case contains n distinct integers a1,a2,…,an (1≤ai≤n ) — the elements of permutation a . All elements of a are distinct. Note that there is no bound on the sum of n over all test cases. Output For each test case, output any permutation b which satisfies the constraints mentioned in the statement. It can be proven that a permutation b that satisfies the condition above always exists.
时间: 2024-02-02 12:02:26 浏览: 214
给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元 素的情况下,该数组能否变成一个非递减数列。非递减数列定义如下:对 于数组中所有的 i (1
题目翻译:
给定一个长度为 n 的排列 a,找到任意一个长度为 n 的排列 b,使得 a1+b1≤a2+b2≤a3+b3≤…≤an+bn。可以证明,满足上述条件的排列 b 总是存在的。
输入:
第一行输入一个整数 t,表示测试数据组数。
接下来 t 行,每行描述一个测试数据,格式如下:
第一行输入一个整数 n,表示排列 a 和 b 的长度。
第二行输入 n 个不同的整数,表示排列 a。
输出:
对于每组测试数据,输出任意一个满足条件的排列 b。
思路分析:
首先将 b 排列按照升序排序,然后再根据 a 排列和 b 排列的位置关系,交替填充到最终的排列中。
具体实现步骤如下:
1. 将 b 排列按照升序排序。
2. 从 a 排列的最小值开始,将 a 和 b 的元素依次比较,如果 a 的元素小于等于 b 的元素,则将 a 的元素放入最终排列中,否则将 b 的元素放入最终排列中。
3. 重复步骤 2 直到 a 和 b 的所有元素都被处理完毕。
代码实现:
阅读全文