传统题 文件IO:couplet 1000ms 256MiB

对联

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

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

  1. 下联必须都是正整数
  2. 下联中的每一个正整数都不能在上联出现过
  3. 上联中的第 ii 个正整数和下联中的第 ii 个正整数对应。你可以任意指定对应关系,但是对应关系必须统一且唯一。

例如若你规定上联中的正整数 3 对应下联中的正整数 1,那么上联中的另一个非 3 的数就不能对应正整数 1,且上联中的所有 3 都必须对应 1。

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

输入格式

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

输出格式

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

样例

6
3 3 4 2 4 7
1 1 5 6 5 8

【说明】

令 3 对应 1,4 对应 5,2 对应 6,7 对应 8,则下联为 [1,1,5,6,5,8]。此为字典序最小的对联,若令 3 对应 9,则下联为 [9,9,5,6,5,8],也是一种合法的下联,但是不是题目所求的字典序最小的下联。

3
1 2 3
4 5 6
8
11 1 2 11 1 5 6 7
3 4 8 3 4 9 10 12

数据范围与提示

对于 20%20\% 的数据,有 1n,ai10001 \leq n, a_i \leq 1000

对于 40%40\% 的数据,有 1n100000,1ai10001 \leq n \leq 100000, 1 \leq a_i \leq 1000

对于 60%60\% 的数据,有 1n,ai1000001 \leq n, a_i\leq 100000

对于另外 20%20\% 的数据,有 1n1000,1ai1091 \leq n \leq 1000, 1 \leq a_i \leq 10^9

对于 100%100\% 的数据,有 1n100000,1ai1091 \leq n \leq 100000, 1 \leq a_i \leq 10^9

csp-J算法301班 作业29 模拟题目

未认领
状态
已结束
题目
6
开始时间
2023-9-9 20:30
截止时间
2023-9-16 19:00
可延期
24 小时