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 翻译