logo AlgoBeat OnlineJudge
登录 注册

#215173. [UOI 2021 II Stage] 字典序

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

最近有人送给哥萨克一个包含 个整数的数组

胡子立刻想要对数组的元素进行排序,使得排序后数组中任意两个相邻的数字都不相同。在所有这样的排序中,他想找到字典序最小的那个。

回忆一下,字典序定义如下。假设有两个数组。找到第一个两个数组元素不同的位置。如果在该位置第一个数组的元素小于第二个数组的元素,则第一个数组字典序小于第二个数组;否则,第一个数组字典序大于第二个数组。例如,以下不等式成立:, ,

输入格式

第一行包含一个整数 —— 数组的元素个数。

第二行包含 个整数 —— 数组的元素。

输出格式

如果无法对哥萨克的数组进行排序,则输出单个数字

否则,输出 个整数 —— 哥萨克的数组的字典序最小排序。

样例

样例输入 1

5
3 1 2 3 3

样例输出 1

3 1 3 2 3

样例输入 2

6
2 3 1 1 2 4

样例输出 2

1 2 1 2 3 4

样例输入 3

4
1 2 1 1

样例输出 3

-1

数据范围与提示

样例说明

在第一个样例中,存在唯一的排序。

在第二个样例中,还存在其他排序,例如:。但所有这些排序在字典序上都大于

在第三个样例中,不存在有效的排序(数组中总会有两个 出现在相邻位置)。

评分细则

本题采用 按测试点 评分。一些额外的限制条件:

  • (5 分):
  • (10 分):
  • (25 分):
  • (5 分):
  • (10 分):
  • (45 分):

翻译由 DeepSeek V3 完成