编程题
### 问题描述 小齐喜欢玩字符串游戏。他发现通过改变字母表的顺序,可以使一些字符串在字典排序中出现在其他所有字符串之前。 给定小齐正在玩的字符串,你需要计算哪些字符串在字典排序中可能出现在最前面。为了判断字符串 $X$ 是否在字符串 $Y$ 之前,找到它们首次不同的字符的索引 $j$。如果不存在这样的索引,则 $X$ 在 $Y$ 之前,当且仅当 $X$ 的长度小于 $Y$。否则,$X$ 在 $Y$ 之前,当且仅当 $X[j]$ 在字母表中的顺序早于 $Y[j]$。 ### 输入格式 第 $1$ 行:一个整数 $N$($1 \leq N \leq 30,000$),表示小齐正在玩的字符串数量。 第 $2$ 行至第 $1+N$ 行:每行包含一个非空字符串。所有字符串总字符数不超过 $300,000$。输入中不包含重复的字符串。 ### 输出格式 第 $1$ 行:一个整数 $K$,表示在字典排序中可能出现在最前面的字符串数量。 第 $2$ 行至第 $1+K$ 行:第 $i$ 行包含可能在字典排序中最前面的第 $i$ 个字符串。输出的顺序应与输入中给出的顺序相同。 ### 样例输入 ``` 4 omm moo mom ommnom ``` ### 样例输出 ``` 2 omm mom ``` ### 评测数据规模 $1 \leq N \leq 30,000$。
查看答案
赣ICP备20007335号-2