#N0228. 恢复排列【NOIP2023模拟赛T1】

恢复排列【NOIP2023模拟赛T1】

题目描述

有一个11~nn的排列pp,但是你并不知道它长什么样子。

但是你得到了一个数组:s1,s2,...,sns_1,s_2,...,s_n

其中,sis_i表示所有满足j<i,pj<pij<i,p_j<p_ipjp_j的和,也就是si=j<i,pj<pipjs_i=\sum_{j<i,p_j<p_i}p_j

现在,请你恢复这个排列。可以证明的是这个排列是唯一的。

输入格式

第一行输入nn

接下来一行nn个整数s1,s2,...,sns_1,s_2,...,s_n

输出格式

输出nn个整数表示答案。

样例输入1

5
0 1 1 1 10

样例输出1

1 4 3 2 5

样例输入2

10
0 1 4 4 10 1 6 24 6 45

样例输出2

1 3 9 6 7 2 5 8 4 10

下发文件

数据范围

对于20%的数据:n10n\leq 10

对于50%的数据:n3000n\leq 3000。(下发样例1)

对于另20%的数据:保证sis_i单调不降。(下发样例2)

对于所有数据:$1\leq n \leq 2\times 10^5,0\leq s_i\leq \frac{n(n-1)}{2}$。