SP14819 PERMTGEN - Permutation Generator

题目描述

Hasan Jaddouh 发明了一种新算法,用于生成排列。这个算法接收一个长度为 $N$ 的数组作为输入,并使用该数组生成一个同样长度为 $N$ 的排列。 为了确保输出的是一个排列,输入数组需满足条件:对于所有的 $i$,都有 $1 \le A_i \le i$。 下面是该算法的伪代码: ``` 读入整数 N 从 1 到 N,依次读入数组 A 的每个元素 从 1 到 N,依次执行以下操作: 对于每个小于 i 的 j,若 A[j] >= A[i],则 A[j] 自增 1 最后,从 1 到 N,依次输出数组 A 的每个元素 ``` 然而,对于较大的数组,Hasan Jaddouh 的算法执行得非常慢。因此,他请求你帮助他寻找一种更高效的实现方式。 你的任务是编写一个程序,按照伪代码的步骤读取输入,并输出处理后的新数组。

输入格式

第一行是一个整数 $N$,满足 $1 \le N \le 10^5$。 第二行包含 $N$ 个用空格分隔的整数,每个整数的取值范围为 1 到 $10^9$,包括 1 和 $10^9$。 **注意:** 为了让 Hasan Jaddouh 的算法得以正常运行并生成一个排列,输入需要满足条件 $1 \le A_i \le i$。但为了增加题目的挑战性,这一条件并不保障,因此输出可能并不是一个排列。

输出格式

输出经过 Hasan Jaddouh 算法处理后的数组,共 $N$ 个整数,数字之间用空格分隔。 **本翻译由 AI 自动生成**