#569. 对联

对联

题目描述

要过年了,大家开始对对联,即一个人写出上联,另一个人来对下联。现在给定一个长度为nn的上联,为了方便读入,上联中的每个字都用一个正整数代替。你需要为这个上联写一个下联,要求如下:

  1. 下联必须都是正整数
  2. 下联中的每一个正整数都不能在上联出现过
  3. 上联中的第ii个正整数和下联中的第ii个正整数对应。你可以任意指定对应关系,但是对应关系必须统一且唯一。例如若你规定上联中的正整数33对应下联中的正整数11,那么上联中的另一个非33的数就不能对应正整数11,且上联中的所有33都必须对应11

由于你可以任意指定对应关系,所以可能的下联有多种,你需要输出字典序最小的一种。

输入格式

第一行输入一个正整数nn,表示数字的个数。接下来一行包含nn个整数,分别表示每一个正整数。

输出格式

输出nn个整数,表示下联。

样例

输入 #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

输出 #3

3 4 8 3 4 9 10 12