CF1422E Minlexes
题目描述
不久前,Lesha 发现了一个有趣的字符串 $s$,它只包含小写英文字母。Lesha 立刻为这个字符串设计了一种独特的算法,并与你分享。算法如下:
Lesha 可以任选若干对位置 $(i, i+1)$(可以为零对),但需满足以下条件:
- 对于每一对 $(i, i+1)$,都有 $0 \le i < |s| - 1$;
- 对于每一对 $(i, i+1)$,都有 $s_i = s_{i+1}$;
- 没有任何一个下标会出现在多于一对中。
之后,Lesha 会移除所有这些对中涉及的字符,算法就结束了。Lesha 想知道,对于给定字符串的每个后缀,应用该算法后能得到的字典序最小的字符串是什么。
输入格式
一行,包含字符串 $s$($1 \le |s| \le 10^5$),即初始字符串,仅由小写英文字母组成。
输出格式
输出 $|s|$ 行,每行包含一个答案的长度和答案本身,按后缀长度从长到短依次输出。由于输出可能很大,当某个答案长度超过 $10$ 时,仅输出前 $5$ 个字符,接着输出 "...",最后输出后 $2$ 个字符。
说明/提示
考虑第一个样例。
- 最长的后缀是整个字符串 "abcdd"。选择一对 $(4, 5)$,Lesha 得到 "abc"。
- 下一个最长的后缀是 "bcdd"。选择一对 $(3, 4)$,得到 "bc"。
- 再下一个后缀是 "cdd"。选择一对 $(2, 3)$,得到 "c"。
- 再下一个后缀是 "dd"。选择一对 $(1, 2)$,得到 ""(空串)。
- 最后一个后缀是 "d"。无法选择任何对,答案为 "d"。
第二个样例中,对于最长后缀 "abbcdddeaaffdfouurtytwoo",选择三对 $(11, 12)$、$(16, 17)$、$(23, 24)$,得到 "abbcdddeaadfortytw"。
由 ChatGPT 4.1 翻译