SP6169 SSEQ - Standing Sequence
题目描述
两个部落已经联合组成了一支队伍,由普拉迪克上校指挥。他需要安排士兵们排好队列。这支队伍中的 $n$ 名士兵已经被分配了从 1(最低)到 $n$(最高)的军衔。在阅兵时,他们应该从左到右按照军衔从低到高的顺序排列。然而,这些精锐突击队员更习惯于战斗,而不是考虑如何按军衔顺序排队。
他们在第一次点名时以一种相当随机的顺序站成一排,这不是因为纪律有问题,而是因为他们不知道该如何正确排列。普拉迪克上校对此非常不悦,尤其是当他发现没有一个士兵记得自己的军衔。他们只知道谁是他们的上级。但这难不倒普拉迪克上校。他很快想出一个聪明的办法,并下达了命令:“从左到右,每位士兵依次:向前一步;向左移动,直到你的左侧没有比你军衔更高的士兵;回到队伍中。” 不久,士兵们便排好队了。
第二天,士兵们还是按昨天的顺序站好,又一次使用同样的方法进行排列。几周后,普拉迪克上校终于让每位士兵记住他们向左移动时经过了多少位士兵,从而使得整个排序过程更为迅速。
现在问题来了:如果你知道每位士兵需要向左移动的步数,能否找出他们最初排成的军衔顺序?
输入格式
第一行包含一个整数 $t$,表示测试用例的数量,其中 $t \leq 50$。接下来的 $t$ 组测试用例中,每一组由两行组成。第一行是一个整数 $n$,表示士兵的数量($1 \leq n \leq 200000$)。第二行包含 $n$ 个空格分隔的整数 $w_i$,表示应用普拉迪克上校的方法时,第 $i$ 名士兵需要向左移动的距离。
输出格式
对于每个测试用例,输出一行,包含 $n$ 个空格分隔的整数,表示士兵最初的军衔顺序,从左到右排列。
**本翻译由 AI 自动生成**