3715: 对联(第三轮01)
题目描述
要过年了,大家开始对对联, 即一个人写出上联,另一个人来对下联。现在给定 一个长度为 n 的上联, 为了方便读入,上联中的每个字都用一个正整数代替。 你需要为这个上联写一个下联,要求如下:
1. 下联必须都是正整数
2. 下联中的每一个正整数都不能在上联出现过
3. 上联中的第 i 个正整数和下联中的第 i 个正整数对应。你可以任意指定对应 关系,但是对应关系必须统一且唯一。例如若你规定上联中的正整数 3 对应下 联中的正整数 1, 那么上联中的另一个非 3 的数就不能对应正整数 1, 且上联
中的所有 3 都必须对应 1。
由于你可以任意指定对应关系,所以可能的下联有多种,你需要输出字典序最小 的一种。
输入
第一行输入一个正整数 n, 表示数字的个数。接下来一行包含 n 个整数, 分别 表示每一个正整数。
输出
输出 n 个整数,表示下联。
样例输入 复制
3 3 4 2 4 7
样例输出 复制
1 1 5 6 5 8
提示
【样例 1 输入】
6
3 3 4 2 4 7
【样例 1 输出】
1 1 5 6 5 8
【样例 1 说明】
令 3 对应 1, 4 对应 5, 2 对应 6, 7 对应 8,则下联为 [1,1,5,6,5,8]。此为 字典序最小的对联,若令 3 对应 9,则下联为 [9,9,5,6,5,8],也是一种合法的下 联,但是不是题目所求的字典序最小的下联。
【样例 2 输入】
3
1 2 3
【样例 2 输出】
4 5 6
【样例 3 输入】
8
11 1 2 11 1 5 6 7 8
【样例 3 输出】
3 4 8 3 4 9 10 12
【数据范围】
对于 20% 的数据,有 1 ≤ n, ai ≤ 1000
对于 40% 的数据,有 1 ≤ n ≤ 100000,1 ≤ ai ≤ 100
对于 60% 的数据,有 1 ≤ n, ai ≤ 100000
对于另外 20% 的数据,有 1 ≤ n ≤ 1000,1 ≤ ai ≤ 10^9
对于 100% 的数据,有 1 ≤ n ≤ 100000,1 ≤ ai ≤ 10^9