CF569B Inventory
题目描述
公司总是有很多设备、家具及其他物品。这些物品都需要进行登记。为此,每件物品都被分配了一个资产编号。使用这些编号建立数据库并跟踪所有物品会更加方便。
在进行审计时,你惊讶地发现物品的编号并不是顺序排列的,甚至有些物品还共享了相同的编号!必须尽快进行修正。你决定将物品编号重新排列,使其成为从 $1$ 开始的连续编号。更改编号是一项十分耗时的工作,因此你希望尽量保留现有的编号。
你获得了公司目前 $n$ 个物品的编号信息。请你重新编号,使它们的编号构成 $1$ 到 $n$ 的一个排列,并尽可能少地更改物品的编号。需要提醒的是,$n$ 个数构成一个排列是指所有这些数都在 $1$ 到 $n$ 范围内且没有重复。
输入格式
第一行包含一个整数 $n$,表示物品的数量($1 \leq n \leq 10^{5}$)。
第二行包含 $n$ 个数字 $a_{1}, a_{2}, \dots, a_{n}$($1 \leq a_{i} \leq 10^{5}$),分别表示每件物品当前的资产编号。
输出格式
输出 $n$ 个数字,表示按照输入的顺序每件物品最终的资产编号。如果有多种可行解,你可以输出其中任意一种。
说明/提示
在第一个样例中,编号已经是一个排列,因此无需更改。
在第二个样例中,有两对相同的编号,在每对中都需要修改其中一个编号。
在第三个样例中,你需要将 $2$ 替换为 $1$,因为编号应该从 $1$ 开始。
由 ChatGPT 5 翻译