CF1701D.Permutation Restoration
普及+/提高
通过率:0%
时间限制:4.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Monocarp had a permutation a of n integers 1, 2, ..., n (a permutation is an array where each element from 1 to n occurs exactly once).
Then Monocarp calculated an array of integers b of size n, where bi=⌊aii⌋. For example, if the permutation a is [2,1,4,3], then the array b is equal to [⌊21⌋,⌊12⌋,⌊43⌋,⌊34⌋]=[0,2,0,1].
Unfortunately, the Monocarp has lost his permutation, so he wants to restore it. Your task is to find a permutation a that corresponds to the given array b. If there are multiple possible permutations, then print any of them. The tests are constructed in such a way that least one suitable permutation exists.
Monocarp 原本有一个由 n 个整数 1,2,…,n 构成的排列 a(即一个每个元素 1 到 n 恰好出现一次的数组)。
接着,Monocarp 计算了一个长度为 n 的整数数组 b,其中 bi=⌊aii⌋。例如,若排列 a 为 [2,1,4,3],则数组 b 为 [⌊21⌋,⌊12⌋,⌊43⌋,⌊34⌋]=[0,2,0,1]。
不幸的是,Monocarp 丢失了他原来的排列,因此他希望将其恢复。你的任务是找出一个与给定数组 b 对应的排列 a。如果存在多个可能的排列,则输出任意一个即可。题目保证测试数据中至少存在一个满足条件的排列。
输入格式
The first line contains a single integer t (1≤t≤105) — number of test cases.
The first line of each test case contains a single integer n (1≤n≤5⋅105).
The second line contains n integers b1,b2,…,bn (0≤bi≤n).
Additional constrains on the input:
- the sum of n over test cases does not exceed 5⋅105;
- there exists at least one permutation a that would yield this array b.
第一行包含一个整数 t(1≤t≤105),表示测试用例的数量。
每个测试用例的第一行包含一个整数 n(1≤n≤5⋅105)。
第二行包含 n 个整数 b1,b2,…,bn(0≤bi≤n)。
输入的额外约束:
- 所有测试用例的 n 之和不超过 5⋅105;
- 至少存在一个排列 a,能生成该数组 b。
输出格式
For each test case, print n integers — a permutation a that corresponds to the given array b. If there are multiple possible permutations, then print any of them.
对于每个测试用例,输出 n 个整数——一个与给定数组 b 对应的排列 a。如果存在多个可能的排列,则输出其中任意一个即可。
输入输出样例
输入#1
4 4 0 2 0 1 2 1 1 5 0 0 1 4 1 3 0 1 3
输出#1
2 1 4 3 1 2 3 4 2 1 5 3 2 1
输入解题思路,AI测评打分。不知道怎么写?