CF110B.Lucky String

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Lucky String

题目描述

Petya 喜欢幸运数字。众所周知,幸运数字是指其十进制表示中只包含幸运数字 4477 的正整数。例如,474774474444 是幸运数字,而 551717467467 不是。

Petya 最近学会了判断一个由小写拉丁字母组成的字符串是否幸运。对于每个字母,将其在字符串中的所有位置按递增顺序列出。这样会得到 2626 个数字列表,其中有些可能为空。只有当每个列表中任意两个相邻数字的绝对差是幸运数字时,这个字符串才被认为是幸运的。

例如,考虑字符串 "zbcdzefdzc"。相同字母的位置列表如下:

  • b:22
  • c:3,103,10
  • d:4,84,8
  • e:66
  • f:77
  • z:1,5,91,5,9
  • 字母 a、g、h、...、y 的位置列表为空。

该字符串是幸运的,因为所有差值都是幸运数字。对于字母 z:51=45-1=495=49-5=4;对于字母 c:103=710-3=7;对于字母 d:84=48-4=4

注意,如果某个字母在字符串中只出现一次,那么在构建相同字母位置列表后,它不会影响字符串的幸运性。所有字母都不相同的字符串也被认为是幸运的。

请你找到长度为 nn 的字典序最小的幸运字符串。

输入格式

一行包含一个正整数 nn1n1051 \leq n \leq 10^{5}),表示所求字符串的长度。

输出格式

输出一行,表示长度为 nn 的字典序最小的幸运字符串。

说明/提示

字符串的字典序比较在现代编程语言中通过 < 运算符实现。字符串 aa 的字典序小于字符串 bb,当且仅当存在某个 ii1in1 \leq i \leq n),使得 ai<bia_i < b_i,并且对于所有 jj1j<i1 \leq j < i),都有 aj=bja_j = b_j

由 ChatGPT 4.1 翻译

样例

5
abcda
3
abc

在线编程 IDE

建议全屏模式获得最佳体验