比赛场次 652
比赛名称 赤石大赛
比赛状态 已结束比赛成绩
开始时间 2024-12-20 14:00:00
结束时间 2024-12-20 18:00:00
开放分组 全部用户
注释介绍 赤石大赛(1绿3紫2黑)快来赤石
题目名称 逆序列
输入输出 nxl.in/out
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试点数 10 简单对比
用户 结果 时间 内存 得分

逆序列

★★   输入文件:nxl.in   输出文件:nxl.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目背景】

今夜星光闪闪,我爱你的心暖暖

【题目描述】


如果一个原排列为 $B = [b_1, b_2, b_3, \ldots, b_n]$,则其逆序列为 $A$,$A_i$为在原排列中在$B$中值等于$i$前所有比$B_i$大的数个数。

给定一个整数序列的逆序列 $A$,你的任务是推导出原排列 $B$。

【输入格式】


1. 第一行输入一个整数 $n$($1 \leq n \leq 500000$),表示排列的长度。


2. 第二行输入 $n$ 个整数,代表逆序列 $A$,这些整数之间用空格分隔。


【输出格式】

输出原序列

【样例输入】

8
5 3 4 0 2 1 1 0

【样例输出】

4 8 6 2 5 1 3 7

【样例说明】


  - `A[1] = 5`:表示在 B 中值为 1 的元素之前,有 5 个比 1 大的数。

  - `A[2] = 3`:表示在 B 中值为 2 的元素之前,有 3 个比 2 大的数。

  - `A[3] = 4`:表示在 B 中值为 3 的元素之前,有 4 个比 3 大的数。

  - `A[4] = 0`:表示在 B 中值为 4 的元素之前,没有比 4 大的数。

  - `A[5] = 2`:表示在 B 中值为 5 的元素之前,有 2 个比 5 大的数。

  - `A[6] = 1`:表示在 B 中值为 6 的元素之前,有 1 个比 6 大的数。

  - `A[7] = 1`:表示在 B 中值为 7 的元素之前,有 1 个比 7 大的数。

  - `A[8] = 0`:表示在 B 中值为 8 的元素之前,没有比 8 大的数。




【数据规模与约定】

对于 10%的数据,1<=n<=10

对于 40%的数据,1<=n<=5000

对于 100%的数据,1<=n<=500000

【来源】

计算机科学丛书《组合数学》定理4.2.1