#P4974. [Lydsy1708月赛]字符串大师
[Lydsy1708月赛]字符串大师
题目描述
一个字符串 被称为字符串 的循环节,当且仅当存在一个正整数 ,使得 是 (即 重复 次)的前缀。例如,字符串 abcd
是 abcdabcdab
的循环节。
给定一个长度为 的仅由小写字母构成的字符串 ,对于每个 (),需要求出 长度为 的前缀的最短循环节长度 。字符串大师小 Q 觉得这个问题非常简单,于是只花了一分钟就将其解决了。他想检验你是否也是一位字符串大师。
小 Q 告诉你 以及 ,请你找到一个长度为 的小写字符串 ,使得它的每个前缀的最短循环节长度与给定的 序列完全匹配。
如果有多个满足条件的字符串 ,你需要输出字典序最小的那个。
输入格式
第一行包含一个正整数 (),表示字符串的长度。
第二行包含 个正整数 (),表示每个前缀的最短循环节长度。
输入数据保证至少存在一组可行解。
输出格式
输出一行一个长度为 的小写字符串 ,即某个满足条件的 。
如果有多个满足条件的 ,输出字典序最小的那个。
5
1 2 2 2 5
ababb
样例解释
在样例中,给定的 序列为 ,对应的字符串 满足以下条件:
- 长度为 的前缀是 "a",其最短循环节长度为 。
- 长度为 的前缀是 "ab",其最短循环节长度为 。
- 长度为 的前缀是 "aba",其最短循环节长度为 。
- 长度为 的前缀是 "abab",其最短循环节长度为 。
- 长度为 的前缀是 "ababb",其最短循环节长度为 。