4251: 子串排序

内存限制:128 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:94 通过:42

题目描述

系统会为您提供n个字符串。 每个字符串由小写英文字母组成。 重新排列(重新排序)给定的字符串,使得对于每个字符串,放在它之前的所有字符串都是其子字符串。
字符串a是字符串b的子字符串,即如果可以在a中找到几个连续字母等于b。 例如,字符串“for”作为子字符串包含在“codeforces”,“for”;又如“therefore”字符串中,但不作为子字符串包含在字符串“four”,“fofo”和“rof”。

输入格式

第一行包含整数n(1≤n≤100)-字符串数。
接下来的n行包含给定的字符串。 每个字符串中的字母从1到100(含)。 每个字符串由小写英文字母组成。
一些字符串可能相等。

输出格式

如果无法按要求的顺序对n个给定的字符串重新排序,请打印“ NO”(不带引号)。
否则,按要求的顺序打印“是”(不带引号)和n个给定的字符串

输入样例 复制

5
a
aba
abacaba
ba
aba

输出样例 复制

YES
a
ba
aba
aba
abacaba