Logo Universal Online Judge

UOJ

时间限制:1 s 空间限制:128 MB

#111. 单词背诵

Statistics
问题描述:
小小在背单词,她发现当背诵了单词beauty 以后 ,再接着背诵单词beautiful 就会觉得容易许多。由于有很多单词要背,她希望找到一种好的背诵顺序。单词A和它的前驱B的最大公共前缀的长度称为背诵单词A的便利值(例如:B=’beauty’,A=’beautiful’,则A的便利值是len({A,B})=len(’beaut’)=5),我们认为一个背诵单词A的花费是它的长度(例如:’beautiful’的长度len(‘beautiful’)=9)与它的便利值之差(对于上述例子背诵A的花费为9-5=4)。请你求一个背诵顺序,使得背诵这些单词的花费总和最小。假设一开始你什么单词都不记得。

输入格式:
给定一个单词表:第一行N(N < 100)表示单词总数。接下来N行,每行一个单词。每个单词的长度不超过20,均为小写字母组成。

输出格式:
按照背诵顺序输出每个单词,每个单词占一行,不能有多余的字符。

样例:

输入:
5
beauty
beautiful
flower
man
dog
输出:
beauty
beautiful
dog
flower
man