描述
程序员常常需要给变量命名、给函数命名、给项目命名、给团队命名…… 好的名字可以大大提高程序员的主观能动性,所以很多程序员在起名时都会陷入纠结和烦恼。
小Hi希望给新的项目起个完美的名字。首先小Hi给出了新项目的N个长度相等(均为L)的关键字,他希望能找到一个完美名字:这个名字的长度恰好为N+L-1,并且其中N个长度为L的子串恰好是给定的N个关键字。
例如对于关键字cat、ate、tea有完美的名字:catea。
给定N个长度相等的关键字,请你帮小Hi找到一个完美的名字。
输入
第一行包含一个整数N。
以下N行每行包含一个长度为L的关键字。
对于30%的数据,1 ≤ N ≤ 10
对于100%的数据,1 ≤ N ≤ 50000,1 ≤ L ≤ 10,关键字只包含小写字母。
输出
如果存在完美的名字,你可以输出任意一个。如果不存在,输出NO。
样例输入
3 ate cat tea
样例输出
catea
以前做过类似的题,有所灵感,知道怎么建图。
- 如单词abcd,我们加一条有向边abc->bcd,
- 那么ate,cat,tea,就是有边at->te, ca->at, te->ea。那么一笔画就是ca->at->te-ea,得到catea。
但是我只记得无向图怎么求欧拉路径。TT。