比赛场次 | 43 |
---|---|
比赛名称 | 20090923练习赛 |
比赛状态 | 已结束比赛成绩 |
开始时间 | 2009-09-23 19:00:00 |
结束时间 | 2009-09-23 22:00:00 |
开放分组 | 全部用户 |
注释介绍 |
题目名称 | 背诵单词 |
---|---|
输入输出 | letter.in/out |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试点数 | 10 简单对比 |
用户 | 结果 | 时间 | 内存 | 得分 |
---|---|---|---|---|
ybh | AAAAAAAAAA | 0.000 s | 0.00 MiB | 100 |
maxiem | WAAAAAAAAA | 0.000 s | 0.00 MiB | 90 |
ReimBurSe. | WWWWWWWWWA | 0.000 s | 0.00 MiB | 10 |
.Xmz | WWWWWWWWWA | 0.000 s | 0.00 MiB | 10 |
Achilles | WWWWWWWWWA | 0.000 s | 0.00 MiB | 10 |
小小在背单词,她发现当背诵了单词 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
beautiful beauty dog flower man