CF110B Lucky String
题目描述
Petya 喜欢幸运数字。众所周知,幸运数字是指其十进制表示中只包含幸运数字 $4$ 和 $7$ 的正整数。例如,$47$、$744$、$4$ 是幸运数字,而 $5$、$17$、$467$ 不是。
Petya 最近学会了判断一个由小写拉丁字母组成的字符串是否幸运。对于每个字母,将其在字符串中的所有位置按递增顺序列出。这样会得到 $26$ 个数字列表,其中有些可能为空。只有当每个列表中任意两个相邻数字的绝对差是幸运数字时,这个字符串才被认为是幸运的。
例如,考虑字符串 "zbcdzefdzc"。相同字母的位置列表如下:
- b:$2$
- c:$3,10$
- d:$4,8$
- e:$6$
- f:$7$
- z:$1,5,9$
- 字母 a、g、h、...、y 的位置列表为空。
该字符串是幸运的,因为所有差值都是幸运数字。对于字母 z:$5-1=4$,$9-5=4$;对于字母 c:$10-3=7$;对于字母 d:$8-4=4$。
注意,如果某个字母在字符串中只出现一次,那么在构建相同字母位置列表后,它不会影响字符串的幸运性。所有字母都不相同的字符串也被认为是幸运的。
请你找到长度为 $n$ 的字典序最小的幸运字符串。
输入格式
一行包含一个正整数 $n$($1 \leq n \leq 10^{5}$),表示所求字符串的长度。
输出格式
输出一行,表示长度为 $n$ 的字典序最小的幸运字符串。
说明/提示
字符串的字典序比较在现代编程语言中通过 < 运算符实现。字符串 $a$ 的字典序小于字符串 $b$,当且仅当存在某个 $i$($1 \leq i \leq n$),使得 $a_i < b_i$,并且对于所有 $j$($1 \leq j < i$),都有 $a_j = b_j$。
由 ChatGPT 4.1 翻译