SP18247 IITWPC4D - Arrangement Validity

题目描述

有 $n$ 个人排成一列。每个人的身高都在 $1$ 到 $n$ 之间,并且身高各不相同。 现在给你一个数组 $A$,其中 $A[i]$ 表示在第 $i$ 个人之前,有多少人身高比第 $i$ 个人高。比如,对于第 $2$ 个人,第 $1$ 个人是在他前面。如果 $A$ 为 $[0, 1]$,那么一个可能的身高排列是 $[2, 1]$,因为在第 $2$ 个人前面,确实有 $1$ 个人(即第 $1$ 个人)的身高大于他。 你需要判断是否存在一个排列使得该数组 $A$ 是合法的。如果有且仅有一个这样的排列,则输出这个排列的身高序列 $H$;如果没有或者不唯一,则输出 `-1`。

输入格式

第一行包含一个整数 $T$,表示测试用例的数量。($1 \le T \le 20$) 每个测试用例包括: - 第一行,一个整数 $n$,表示人数。($1 \le n \le 10^5$) - 接下来一行,有 $n$ 个以空格分隔的整数,分别表示 $A[i]$。($0 \le A[i] \le n$)

输出格式

对于每个测试用例,输出一行结果。 - 如果能找到唯一的身高排列 $H$,在同一行输出 $n$ 个空格分隔的整数。 - 如果没有这样的排列,输出 `-1`。 同时,每个测试用例的输出需以 `Test : 测试编号` 开头(不带引号)。注意在冒号前后各有一个空格。 **本翻译由 AI 自动生成**