#8249. 序列重构(border)
0
序列重构(border)
序列重构(border)
题目描述
Y 同学是一位对字符串 Border 性质深有研究的学者。最近,他提出了一个关于逆向构造的有趣问题。
给定一个长度为 的整数序列 ,其中每一个元素 均满足 。你需要构造一个长度同样为 的正整数序列 ,使得该序列满足以下所有条件:
- 对于所有的 ,有 。
- 对于所有的 ,序列 的前缀 与序列 前 个元素构成的子串的后缀 完全相同。即:对于所有的 ,均满足 。
- 在满足上述所有约束的前提下,序列 中出现的不同元素的数量必须达到最大。
- 在满足上述所有约束且不同元素数量最大的前提下,序列 的字典序必须最小。
Y 同学可以轻松地解决这个问题,但他想考考你。
输入格式
第一行包含一个整数 ,表示序列 的长度。
第二行包含 个整数,第 个整数为 ,表示题目给定的限制条件。
输出格式
输出一行 个由空格隔开的整数,表示构造出的序列 。
样例
样例输入 #1
5
0 0 1 2 3
样例输出 #1
1 2 1 2 1
样例输入 #2
11
0 0 0 0 2 1 0 0 3 0 1
样例输出 #2
1 2 3 1 2 1 1 2 3 4 1
数据范围与约定
对于 的数据,保证 ,且对于所有的 ,均有 。
| 测试点编号 | 分值 | 特殊性质 | |
|---|---|---|---|
| 10 | 无 | ||
| 20 | 特殊性质 A | ||
| 特殊性质 B | |||
| 无 | |||
| 30 |
- 特殊性质 A:对于所有的 ,保证 。
- 特殊性质 B:对于所有的 ,保证 。
相关
在下列比赛中: