#agc046e. [agc046_e]Permutation Cover

[agc046_e]Permutation Cover

题目描述

给定整数 KK 和整数 a1,dots,aKa_1,\\dots, a_K。确定是否存在一个满足以下条件的序列 PP,如果存在,则找出字典序最小的这样的序列。

  • PP 中的每个项是介于 11KK 之间(包括 11KK)的整数。
  • 对于每个 i=1,dots,Ki=1,\\dots, KPP 包含 aia_iii
  • 对于 PP 中的每个项,存在一个长度为 KK 的连续子序列包含该项,并且是1,dots,K1,\\dots, K 的一个排列。

约束条件

  • 1leqKleq1001 \\leq K \\leq 100
  • 1leqaileq1000quad(1leqileqK)1 \\leq a_i \\leq 1000 \\quad (1\\leq i\\leq K)
  • a1+dots+aKleq1000a_1 + \\dots + a_K\\leq 1000
  • 输入中的所有值都是整数。

输入

输入以标准输入给出,格式如下所示:

KK a1a_1 a2a_2 dots\\dots aKa_K

输出

如果不存在满足条件的序列,输出 -1。否则,输出满足条件的字典序最小的序列。

示例输入 1

3
2 4 3

示例输出 1

2 1 3 2 2 3 1 2 3 

例如,第五个项是 22,在第五、第六和第七个项构成的子序列 (2,3,1)(2, 3, 1) 中。

示例输入 2

4
3 2 3 2

示例输出 2

1 2 3 4 1 3 1 2 4 3 

示例输入 3

5
3 1 4 1 5

示例输出 3

-1